SQLite没有在触发器中查找字段

时间:2014-10-08 17:03:10

标签: sql sqlite triggers

我有两张桌子。一个是扣除,另一个是deductTrans。 idDeductions是Deductions中的关键字段,它是deductTrans中的外键。当插入deductTrans时,我想要在扣除中自动执行一些操作。我有这个触发器,它可以编译。

    CREATE TRIGGER trig_DeductTrans AFTER INSERT ON DeductTrans
    BEGIN
        UPDATE Deductions
    SET remainingCt = remainingCT - 1
    WHERE
        idDeductions = New.idDeductions ;
    END;

当我插入记录时,我收到以下错误:"没有像idDeductions这样的列"

我不知所措。我已经尝试将WHERE更改为Deductions.idDeductions = New.idDeductions但它没有帮助。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

SQLite声称Deductions表没有名为' idDeductions'的列。您还没有给我们任何检查手段,但很可能是正确的。我发现您的触发器位于不同的桌子上(DeductTrans),显然您希望还有一个列idDeductions

Deductions中的相应列很可能以不同的名称命名。例如,它可能只是命名为id

答案 1 :(得分:0)

行。离奇。我在Navicat Premium上测试了这个。厌恶地保存了触发器,关闭了程序,然后去吃午饭。回来后想,我再试一次。工作就像一个魅力。打败了我们的一切!