Wenn die Zeile aus der übergeordneten Tabelle gelöscht wird und die Daten der Zeile in der untergeordneten Tabelle verwendet werden, gibt MySQL aufgrund eines Fehlers bei der FOREIGN KEY-Einschränkung einen Fehler aus. Dies lässt sich am Beispiel der beiden Tabellen „Kunde“ und „Bestellungen“ nachvollziehen. Hier ist „Kunde“ die übergeordnete Tabelle und „Bestellungen“ die untergeordnete Tabelle. Wir können keine Zeilen aus der Tabelle „Kunde“ löschen, die in der Untertabelle „Bestellungen“ verwendet werden. Dies kann demonstriert werden, indem Werte aus der übergeordneten Tabelle gelöscht werden, wie unten gezeigt –
mysql> Select * from Customer; +----+--------+ | id | name | +----+--------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit| | 4 | Aarav | +----+--------+ 4 rows in set (0.00 sec) mysql> Select * from orders; +----------+----------+------+ | order_id | product | id | +----------+----------+------+ | 100 | Notebook | 1 | | 110 | Pen | 1 | | 120 | Book | 2 | | 130 | Charts | 2 | +----------+----------+------+ 4 rows in set (0.00 sec)
Nehmen wir nun an, wir versuchen, Zeilen mit der ID = 1 oder der ID = 2 aus der übergeordneten Tabelle „Kunde“ zu löschen (da diese beiden in verwendet werden). die untergeordnete Tabellenzeile), dann gibt MySQL den folgenden Fehler aus, weil die Fremdschlüsseleinschränkung fehlgeschlagen ist.
mysql> Delete from customer where id = 1; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`)REFERENCES `customer` (`id`)) mysql> Delete from customer where id = 2; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`)REFERENCES `customer` (`id`))
Das obige ist der detaillierte Inhalt vonWas passiert, wenn ich eine Zeile aus der übergeordneten MySQL-Tabelle lösche?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!