Ich habe zwei Tabellen in MySQL database- parent
, child
. Ich versuche, meiner untergeordneten Tabelle Fremdschlüsselverweise hinzuzufügen, die auf der übergeordneten Tabelle basieren. Gibt es einen signifikanten Unterschied zwischen ON UPDATE CASCADE
und?ON DELETE CASCADE
Mein Elterntisch
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
Meine Frage ist: Was ist der Unterschied zwischen den folgenden SQL-Abfragen.
ON DELETE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;
ON UPDATE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON UPDATE CASCADE ) ENGINE=INNODB;
ON UPDATE CASCADE ON DELETE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB;
Gibt es irgendwelche Fehler in den Abfragen? Was bedeuten diese Abfragen (1,2 & 3)? Sind sie gleich ???