sql >> Database >  >> RDS >> Mysql

Verwijderen uit een MySQL-tabel met beperkingen voor externe sleutels

Helaas gebeurt de automatische verwijdering waarvan u denkt dat dit zou moeten gebeuren, niet. U moet handmatig de rijen in tabel B verwijderen die de ID bevatten van de rij in tabel A die u wilt verwijderen.

Probeer ON DELETE CASCADE toe te voegen naar uw buitenlandse sleutelkolomdefinitie in Tabel B.

Als u Hibernate of een ander ORM-hulpmiddel gebruikt, zou het een "cascade" -mechanisme hebben dat dit automatisch zou afhandelen. Maar aangezien u hier rechtstreeks met de database communiceert, moet u er rekening mee houden dat een rij niet kan worden verwijderd als de ID van die rij in een andere tabel voorkomt als een externe sleutel (zoals in uw geval bestaat de primaire sleutel van A in enkele van de rijen in B). Tenzij u natuurlijk de eigenschap ON DELETE CASCADE opgeeft.




  1. Een back-up maken van een PostgreSQL-database en deze herstellen via DBeaver

  2. mysql trigger opgeslagen trigger wordt al gebruikt door de instructie die de opgeslagen trigger heeft aangeroepen

  3. Waarom geeft deze lus niet elke vijf seconden een bijgewerkte objecttelling weer?

  4. Android:deelnemen aan de kindertafel met oudertabel Sqlite