Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire la modifica nella tabella di giunzione

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.