Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So führen Sie eine Bearbeitung in der Verbindungstabelle durch

Sie müssen nicht alle Zeilen löschen, um damit zu beginnen.

Sie können nur die nicht mehr zutreffenden Zeilen löschen und nur die neuen Zeilen einfügen. Oder Sie können einen Wert, der nicht mehr zutrifft, mit einem Wert aktualisieren, der zutrifft.

Also um daraus zu kommen

Name    Role
--
John    Admin
John    Member
John    Superuser

dazu

Name    Role
--
John    Member
John    Junior

Was nicht mehr zutrifft, können Sie löschen. . .

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

und fügen Sie ein, was zutrifft.

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

Oder Sie können einen Wert mit einem neuen Wert aktualisieren.

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

Gefolgt von

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

Sie sagten

Dafür sind Transaktionen da. Mehrere Anweisungen innerhalb einer einzigen SQL-Transaktion sind alles oder nichts – entweder sind sie alle erfolgreich oder es werden keine Änderungen vorgenommen.