0

我知道这是一个非常基本的问题,但我似乎无法让它发挥作用。我有一张看起来像这样的表:

 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

遗憾的是,外键不是一种选择,因为自动级联似乎不起作用。

非常感谢

4

1 回答 1

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;
于 2013-04-12T20:43:36.297 回答