以下是创建表的查询:
CREATE TABLE "FacilityRating"(
"FacilityRatingId" INTEGER PRIMARY KEY NOT NULL,
"Stars" VARCHAR,
"Facility_FacilityId" INTEGER,
"User_UserId" INTEGER,
FOREIGN KEY (Facility_FacilityId)
REFERENCES Facility(FacilityId)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (User_UserId)
REFERENCES User(UserId)
ON DELETE CASCADE
ON UPDATE CASCADE
)
但是,当我在Facility_FacilityId
和User_UserId
中插入一个带有一些随机数的新行时,SQLite不会给出错误,但无论如何都要添加它。
这是一张快照:
任何暗示这里发生了什么?我正在使用SQLite Manager,一个Mozilla Firefox附加组件
答案 0 :(得分:7)
应用程序必须在运行时使用PRAGMA foreign_keys命令启用外键约束。例如:
sqlite> PRAGMA foreign_keys = ON;
默认情况下禁用外键约束(为了向后兼容),因此必须为每个数据库连接单独启用。
答案 1 :(得分:1)
@Override
public void onConfigure(SQLiteDatabase db) {
super.onConfigure(db);
db.setForeignKeyConstraintsEnabled(true);
}