U hoeft niet alle rijen te verwijderen om mee te beginnen.
U kunt alleen de rijen verwijderen die niet meer van toepassing zijn en alleen de nieuwe rijen invoegen. Of u kunt een waarde die niet langer van toepassing is bijwerken met een waarde die wel van toepassing is.
Dus om hieruit te komen
Name Role
--
John Admin
John Member
John Superuser
naar dit
Name Role
--
John Member
John Junior
Wat niet meer van toepassing is, kunt u verwijderen. . .
delete from userinroles
where Name = 'John'
and (Role = 'Admin' or Role = 'Superuser');
en vul in wat wel van toepassing is.
insert into userinroles (Name, Role)
values ('John', 'Junior');
Of u kunt een waarde bijwerken met een nieuwe waarde.
delete from userinroles
where Name = 'John'
and Role = 'Admin';
Gevolgd door
update userinroles
set Role = 'Junior'
where 'Name' = 'John' and Role = 'Superuser';
Je zei
Daar zijn transacties voor. Meerdere instructies binnen een enkele SQL-transactie zijn alles of niets - ze slagen allemaal of er worden geen wijzigingen aangebracht.