Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment effectuer une modification dans la table de jonction

Vous n'êtes pas obligé de supprimer toutes les lignes pour commencer.

Vous pouvez supprimer uniquement les lignes qui ne s'appliquent plus et insérer uniquement les nouvelles lignes. Ou vous pouvez mettre à jour une valeur qui ne s'applique plus avec une valeur qui s'applique.

Donc pour en tirer

Name    Role
--
John    Admin
John    Member
John    Superuser

à ça

Name    Role
--
John    Member
John    Junior

Vous pouvez supprimer ce qui ne s'applique plus. . .

delete from userinroles
where Name = 'John' 
  and (Role = 'Admin' or Role = 'Superuser');

et insérez ce qui s'applique.

insert into userinroles (Name, Role)
values ('John', 'Junior');

Ou vous pouvez mettre à jour une valeur avec une nouvelle valeur.

delete from userinroles
where Name = 'John' 
  and Role = 'Admin';

Suivi de

update userinroles
set Role = 'Junior'
where 'Name' = 'John' and Role = 'Superuser';

Vous avez dit

C'est à ça que servent les transactions. Plusieurs instructions au sein d'une même transaction SQL sont tout ou rien :soit elles réussissent toutes, soit aucune modification n'est apportée.