MySQL - Verknüpfte Daten löschen wenn Tupel gelöscht wird?
Moin,
ich habe hier folgende Aufgabe und komme da leider nicht weiter.
Das nachträgliche erstellen des Fremdschlüssels bekomme ich noch hin, aber der Teil danach bereitet mir Kopfschmerzen.
Definieren Sie in der Tabelle 'artikel' die Tabellenspalte 'herstellernummer' als Fremdschlüssel. Dabei soll die referenzielle Integrität der Daten überprüft und beim Löschen eines Datensatzes alle anderen Datensätze in anderen Tabellen, die sich auf ihn beziehen, ebenfalls gelöscht werden. Überprüfen Sie die neue Tabellenstruktur.
Also ich verstehe grundsätzlich was gemeint ist. Nur an der Umsetzung es haperts.
Kann wir da jemand weiterhelfen?
Viele Grüße
T.
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
PC, Computer, Technik
Du musst beim Fremdschlüssel einfach das löschverhalten (ON_DELETE) auf cascade stellen.
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
When an UPDATE or DELETE operation affects a key value in the parent table that has matching rows in the child table, the result depends on the referential action specified by ON UPDATE and ON DELETE subclauses of the FOREIGN KEY clause. Referential actions include:
CASCADE: Delete or update the row from the parent table and automatically delete or update the matching rows in the child table. Both ON DELETE CASCADE and ON UPDATE CASCADE are supported. Between two tables, do not define several ON UPDATE CASCADE clauses that act on the same column in the parent table or in the child table.
...
Ahh super vielen Dank. Das ist genau das was ich gesucht habe. Das hat mir sehr weiter geholfen :D