Quiero comentarles que estoy haciendo pruebas con la base de datos Sqlite relacionando las tablas y haciendo cambios en la misma pero me estoy encontrando con un detalle y es que noto que no me esta borrando los registros en cascada!.
Ejemplo poseo estas tres tablas:
1-Empresa
2-Almacen
3-Almacen_Empresa
Yo creo la tabla que relaciona dos tablas de muchos a muchos de la siguiente manera:
CREATE TABLE almacen_empresa (
id_almacen_empresa INTEGER PRIMARY KEY,
fk_rif_empresa INTEGER,
fk_almacen INTEGER,
FOREIGN KEY (fk_rif_empresa) REFERENCES empresa(rif_empresa) ON UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (fk_almacen) REFERENCES almacen(id_almacen)ON UPDATE CASCADE ON DELETE CASCADE
);
id_almacen_empresa INTEGER PRIMARY KEY,
fk_rif_empresa INTEGER,
fk_almacen INTEGER,
FOREIGN KEY (fk_rif_empresa) REFERENCES empresa(rif_empresa) ON UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (fk_almacen) REFERENCES almacen(id_almacen)ON UPDATE CASCADE ON DELETE CASCADE
);
Al llenar la tabla Almacen_Empresa con las foráneas que corresponden a las dos comentadas las consultas las hace muy bien con su relación y todo pero cuando borro un registro sea de la tabla Empresa o Almacen no borra tampoco el registro que se relaciona en la tabla Almacen_Empresa, que podrá ser?.
Sera que el ON DELETE CASCADE le falta algo? y lo mas extraño es que me sucede lo mismo en Mysql quizá sea ignorante en el asunto y no sepa algo allí.
Quiero salir de dudas, gracias.