Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Grundlagen von Fremdschlüsseln in MySQL?

FOREIGN KEYS Stellen Sie einfach sicher, dass Ihre Daten konsistent sind.

Sie verbessern Abfragen nicht im Sinne der Effizienz, sie lassen nur einige falsche Abfragen fehlschlagen.

Wenn Sie eine Beziehung wie diese haben:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

, dann können Sie eine department nicht löschen wenn es einen employee hat 's.

Wenn Sie ON DELETE CASCADE angeben zum FOREIGN KEYS Definition werden die referenzierenden Zeilen automatisch zusammen mit den referenzierten gelöscht.

Als Einschränkung FOREIGN KEYS tatsächlich verlangsamt die Abfragen ein wenig.

Beim Löschen aus einer referenzierten Tabelle oder beim Einfügen in eine referenzierende Tabelle muss eine zusätzliche Überprüfung durchgeführt werden.