我有以下结构:(抱歉尴尬的名字,这是因为它是我的iPhone应用程序的sqlite数据库,尚未发布)
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)
)
当我删除klb_log_food_maps
中的行时,是否有理由不删除klb_log
中的行?
答案 0 :(得分:71)
默认情况下,SQLite中未启用外键支持。每次使用pragma:
连接到数据库时,都需要手动启用它PRAGMA foreign_keys = ON
答案 1 :(得分:14)
您是否启用了外键支持?
查询PRAGMA foreign_keys = ON;
将其打开