【发布时间】:2011-05-04 21:47:59
【问题描述】:
我的结构如下:(对不起,名字尴尬,因为它是我的 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 中的一行时,klb_log_food_maps 中的行没有被删除是否有原因?
【问题讨论】:
-
你解决了吗?即使在运行“PRAGMA foreign_keys = ON”查询之后,我也遇到了同样的问题。
-
@PiotrBlasiak 是的,我在对数据库进行任何查询之前运行它: if (sqlite3_prepare_v2(database, "PRAGMA foreign_keys = ON", -1, &enableForeignKey, NULL) != SQLITE_OK) { NSLog( @"编译指示 DBADAPTER 中的错误!"); } sqlite3_finalize(enableForeignKey);并且这是变量: static sqlite3 *database;静态 sqlite3_stmt *enableForeignKey;