Ho due tabelle in MySQL database- parent
, child
. Sto cercando di aggiungere riferimenti a chiave esterna alla mia tabella figlio in base alla tabella padre. C'è qualche differenza significativa tra ON UPDATE CASCADE
eON DELETE CASCADE
Tabella dei miei genitori
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
La mia domanda è: qual è la differenza tra le seguenti query sql.
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;
Ci sono errori nelle query? Cosa significano queste query (1,2 e 3) ?? Sono uguali ???