【发布时间】:2012-11-18 10:33:03
【问题描述】:
在Android 4.2中,使用SQLite 3.7.11,当我从Quizzes表中删除一行时,谁的架构在下面,QuizQuestions表中的相应行不会被删除。
我不知道出了什么问题。我试过把
db.execSQL("PRAGMA foreign_keys = ON;");
在创建表语句之前和之后。
创建表语句:
CREATE TABLE quizzes(quiz_name TEXT PRIMARY KEY COLLATE NOCASE);
CREATE TABLE quizQuestions(quiz_name TEXT, question_id INTEGER,
PRIMARY KEY(quiz_name, question_id),
FOREIGN KEY(quiz_name) REFERENCES quizzes(quiz_name) ON DELETE CASCADE,
FOREIGN KEY(question_id) REFERENCES questions(question_id) ON DELETE CASCADE);
【问题讨论】:
-
有错误信息吗?除了你注意到它不起作用......
-
不,LogCat 中没有显示任何内容。
-
可能是因为您的主键是复合键....可能是这样的。:PRIMARY KEY (quiz_name, question_id) ON CONFLICT IGNORE, CONSTRAINT "PrimaryKey" FOREIGN KEY ( "quiz_name", "question_id") REFERENCES "quizQuestions" ("quiz_name", "question_id") ON DELETE CASCADE);
-
检查这个post out会对你有很大帮助。
标签: android sqlite cascading-deletes