sql >> Database >  >> RDS >> Mysql

Hoe een bewerking in de verbindingstabel uit te voeren

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.



  1. Records verwijderen die niet aanwezig zijn in join

  2. MySQL - GROUP BY vertraagt ​​de pagina

  3. Query's uitvoeren op meerdere tabellen met complexe relaties

  4. Foutmeldingen Opdrachten lopen niet synchroon, u kunt de opdracht nu niet uitvoeren terwijl u een opgeslagen procedure uitvoert in mysql/PHP