mysql löschen und foreign key-Einschränkung
Ich bin löschen der ausgewählten Zeilen aus den beiden Tabelle in MYSQL, die zwei Tabellen sind Fremdschlüssel.
DELETE d,b
FROM A as b
INNER JOIN B as d on b.bid=d.bid WHERE b.name LIKE '%xxxx%';
MYSQL beschwert sich über Fremdschlüssel auch wenn ich versuche zu löschen aus beiden Tabellen:
Error: Cannot delete or update a parent row: a foreign key constraint
fails (`yyy/d`, CONSTRAINT `fk_d_bid` FOREIGN KEY (`bid`) REFERENCES
`b` (`bid`) ON DELETE NO ACTION ON UPDATE NO ACTION)
was ist hier die beste Lösung zum löschen aus der Tabelle?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern, diese Einschränkung zu verwenden
ON DELETE CASCADE
-- was bedeutet, dass, wenn eine Zeile gelöscht wird, dann ist jede "child" - Zeilen werden automatisch mit gelöscht.Natürlich nehmen gute Pflege, CASCADE -- nur verwenden, wenn notwendig. Wenn Sie übertreiben, und versehentlich eine gut platzierte LÖSCHEN, es könnten am Ende löschen Sie die Hälfte Ihrer Datenbank. 🙂
Sehen Dokumentation auf foreign key-Einschränkungen.
Ich glaube, ich sehe was du versuchst zu tun
Wenn Sie können nicht ändern die Struktur der Tabelle, dann könnten Sie 2 Aussagen, die erste mit einem sub-select
delete from B where bid IN (select Gebot von Einem where name like '%xxxx%');
delete from where name like '%xxxx%';