我知道这是一个非常基本的问题,但我似乎无法使其发挥作用。我有一张看起来像这样的表:
TABLE entry
(
"eID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"pID" INTEGER,
"fID" INTEGER,
"vidPath" TEXT )
这里有一个相关的:
CREATE TABLE "ftime" (
"fID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"fName" TEXT );
我希望有一个触发器,使得只能在已经存在的ftime中将新记录插入到条目表中,即fID必须已经存在。我已经提出了以下触发器,但由于某种原因它仍然失败:
CREATE TRIGGER insert_fid_exists BEFORE INSERT ON entry BEGIN
IF EXISTS (SELECT from faceTime WHERE fID=new.fID;) END
外键不是一种选择,遗憾的是,因为自动级联似乎不起作用。
非常感谢
答案 0 :(得分:1)
CREATE TRIGGER insert_fid_exists
BEFORE INSERT ON entry
BEGIN
SELECT RAISE(FAIL, 'no matching ftime record')
WHERE NOT EXISTS (SELECT 1
FROM ftime
WHERE fID = NEW.fID);
END;