Mam dwie tabele w MySQL od bazy danych parent
, child
. Próbuję dodać odniesienia do klucza obcego do mojej tabeli podrzędnej na podstawie tabeli nadrzędnej. Czy jest jakaś znacząca różnica między ON UPDATE CASCADE
iON DELETE CASCADE
Stolik mojego rodzica
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
Moje pytanie brzmi: jaka jest różnica między następującymi zapytaniami 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;
Czy w zapytaniach są jakieś błędy? Co oznaczają te zapytania (1,2 i 3)? Czy są takie same ???