插入触发器不能在sqlite上工作

时间:2014-02-20 14:12:30

标签: sqlite

我有一个名为explor的电子设备,上面有sqlite数据库,我手动需要在其上输入Verbali表格信息(逐一列),然后在车辆末尾发票。我可以输入所有关于它的信息,当我在设备上给出打印问题时,数据库就会关闭,我再次打开它。当我使用此触发器时,信息不会保存在此设备上。

我有2个表verbalidata和nlist我试图将值插入verbalidata并为verbali数据中的列创建一个触发器,它应该更新verbalidata列值的Nlist列值。 这是我的触发器。它只是在我试图执行这个statament时终止。我的插入参数未创建。

CREATE TRIGGER [Points]
AFTER INSERT
ON [VerbaliData]
FOR EACH ROW
WHEN Targa is not null
BEGIN 
UPDATE VerbaliData
    set VerbaliRuleFourPoints = (select NaughtyList.Points from NaughtyList WHERE
    NaughtyList.VRM = VerbaliData.Targa);

    END

1 个答案:

答案 0 :(得分:0)

您的触发器会更新 VerbaliData表的每个记录。

您必须搜索插入的记录,如下所示:

CREATE TRIGGER Points
AFTER INSERT ON VerbaliData
FOR EACH ROW
WHEN NEW.Targa IS NOT NULL
BEGIN 
    UPDATE VerbaliData
    SET VerbaliRuleFourPoints = (SELECT Points
                                 FROM NaughtyList
                                 WHERE VRM = NEW.Targa)
    WHERE rowid = NEW.rowid; -- or whatever the primary key is
END;