Non è necessario eliminare tutte le righe per iniziare.
È possibile eliminare solo le righe non più valide e inserire solo le righe nuove. Oppure puoi aggiornare un valore che non è più applicabile con un valore che si applica.
Quindi per ottenere da questo
Name Role
--
John Admin
John Member
John Superuser
a questo
Name Role
--
John Member
John Junior
È possibile eliminare ciò che non è più applicabile. . .
delete from userinroles
where Name = 'John'
and (Role = 'Admin' or Role = 'Superuser');
e inserisci ciò che si applica.
insert into userinroles (Name, Role)
values ('John', 'Junior');
Oppure puoi aggiornare un valore con un nuovo valore.
delete from userinroles
where Name = 'John'
and Role = 'Admin';
Seguito da
update userinroles
set Role = 'Junior'
where 'Name' = 'John' and Role = 'Superuser';
Hai detto
Ecco a cosa servono le transazioni. Più istruzioni all'interno di una singola transazione SQL sono tutte o niente, o tutte hanno esito positivo o non vengono apportate modifiche.