tiny - sqlite website
ON DELETE CASCADE en sqlite3 (2)
¿Tiene habilitada la compatibilidad con claves externas?
consulta PRAGMA foreign_keys = ON;
Encenderlo
Tengo la siguiente estructura: (Lo siento por nombres torpes, es porque es una base de datos sqlite para mi aplicación de iPhone que aún no se ha lanzado)
CREATE TABLE klb_log (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
log_comment varchar(512)
)
CREATE TABLE klb_log_food_maps (
uid integer,
did integer,
PRIMARY KEY (uid,did),
FOREIGN KEY (uid) references klb_log(id) ON DELETE CASCADE,
FOREIGN KEY (did) references klb_food(id) ON DELETE CASCADE
)
CREATE TABLE klb_food (
id integer,
description varchar(255),
PRIMARY KEY (id)
)
¿Hay alguna razón por la cual la fila en klb_log_food_maps
no se elimine cuando elimino una fila en klb_log
?
La compatibilidad de clave externa no está habilitada en SQLite de manera predeterminada. Debe habilitarlo manualmente cada vez que se conecte a la base de datos utilizando pragma:
PRAGMA foreign_keys = ON