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

Sletning fra en MySQL-tabel med fremmednøglebegrænsninger

Desværre sker den automatiske sletning, som du mener burde ske, ikke. Du skal manuelt slette rækkerne i tabel B, der indeholder ID'et, fra rækken i tabel A, som du ønsker at fjerne.

Prøv at tilføje ON SLET CASCADE til din fremmednøglekolonnedefinition i tabel B.

Hvis du bruger Hibernate eller et andet ORM-værktøj, ville det have en "kaskade"-mekanisme, der ville håndtere dette automatisk. Men her, da du bruger databasen direkte, skal du huske på, at en række ikke kan slettes, hvis ID'et for den nævnte række findes i en anden tabel som en fremmednøgle (som i dit tilfælde, den primære nøgle til A findes i nogle af rækkerne i B). Medmindre du selvfølgelig angiver egenskaben ON DELETE CASCADE.




  1. 2 måder at liste alle lagrede procedurer i MySQL

  2. Hvad er en større version alligevel?

  3. Sådan konverteres en MySQL-database til UTF-8-kodning

  4. APPLSYSPUB-skema