Heim > Datenbank > MySQL-Tutorial > Was passiert, wenn ich eine Zeile aus der übergeordneten MySQL-Tabelle lösche?

Was passiert, wenn ich eine Zeile aus der übergeordneten MySQL-Tabelle lösche?

WBOY
Freigeben: 2023-09-03 21:17:02
nach vorne
664 Leute haben es durchsucht

如果我从 MySQL 父表中删除一行会发生什么?

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)
Nach dem Login kopieren

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`))
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage