Tatsächlich erzwingen Fremdschlüssel die referenzielle Integrität und helfen uns, die Konsistenz und Integrität der Daten automatisch aufrechtzuerhalten. 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 Bestellungen für nicht existierende Kunden erstellen. Dies kann durch Einfügen von Werten in beide Tabellen demonstriert 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, den Wert eines nicht vorhandenen Kunden in die Tabelle „Bestellungen“ einzufügen (ID 10 existiert nicht in der Tabelle „Kunde“) " Tabelle), dann gibt MySQL einen Fehler aufgrund des folgenden Fehlers aus: Fremdschlüsseleinschränkung.
mysql> insert into orders values(400, 'Notebook',10); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`) REFERENCES `customer` (`id`))
Das obige ist der detaillierte Inhalt vonWenn zwei Tabellen mit MySQL FOREIGN KEY verbunden sind, wie können wir dann sagen, dass die Daten in der untergeordneten Tabelle ihre Integrität bewahren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!