Tengo dos tablas de MySQL base de datos- parent, child. Estoy tratando de agregar referencias de clave externa a mi tabla secundaria en función de la tabla primaria. ¿Hay alguna diferencia significativa entre ON UPDATE CASCADEyON DELETE CASCADE
My Parent Table
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
Mi pregunta es: ¿Cuál es la diferencia entre las siguientes consultas sql?
ON DELETE CASCADECREATE 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 CASCADECREATE 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 CASCADECREATE 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;
¿Hay algún error en las consultas? ¿Qué significan estas consultas (1,2 y 3)? ¿Son iguales?