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

Sådan udfører du redigering i junction-tabel

Du behøver ikke at slette alle rækkerne til at starte med.

Du kan kun slette de rækker, der ikke længere gælder, og kun indsætte de rækker, der er nye. Eller du kan opdatere en værdi, der ikke længere gælder, med en værdi, der gør sig gældende.

Så for at komme fra dette

Name    Role
--
John    Admin
John    Member
John    Superuser

til dette

Name    Role
--
John    Member
John    Junior

Du kan slette det, der ikke længere gælder. . .

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

og indsæt hvad der gælder.

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

Eller du kan opdatere en værdi med en ny værdi.

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

Efterfulgt af

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

Du sagde

Det er det, transaktioner er til for. Flere sætninger inden for en enkelt SQL-transaktion er alt eller intet – enten lykkes de alle, eller også foretages der ingen ændringer.



  1. Udfyld datasæt med tabelnavne fra lagret procedure

  2. Arbejde med datoer i PostgreSQL

  3. Implicitte konverteringer og afrunding

  4. Er det muligt at udføre krydsdatabaseforespørgsler med PostgreSQL?