J'ai deux tables dans MySQL database- parent
, child
. J'essaie d'ajouter des références de clé étrangère à ma table enfant en fonction de la table parent. Existe-t-il une différence significative entre ON UPDATE CASCADE
etON DELETE CASCADE
Ma table des parents
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
Ma question est la suivante: quelle est la différence entre les requêtes SQL suivantes?
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;
Y a-t-il des erreurs dans les requêtes? Que signifient ces requêtes (1,2 et 3)? Sont-ils les mêmes ???