我正在建立一个简单的sqlite数据库,通过python进行访问。到目前为止,我有一个基本表和两个触发器-我想让一个触发器在添加新记录时更新字段列“日期已添加”,另一个触发器在稍后更新记录时更新列“日期已更新”。以下是触发器的sqlite语法:
CREATE TRIGGER add_contact AFTER INSERT ON contact_info
BEGIN
UPDATE contact_info SET date_added = DATETIME('NOW') WHERE pkid = new.pkid;
END;
CREATE TRIGGER update_contact AFTER UPDATE ON contact_info
BEGIN
UPDATE contact_info SET date_updated = DATETIME('NOW') WHERE pkid = new.pkid;
END;
“添加联系人”触发器似乎工作正常…按计划,当我通过SQL插入命令添加新记录时,它将激发。
问题似乎是“更新联系人”触发器…当我通过SQL更新命令(按计划)更新记录时,它会同时触发
和
当我添加新记录时:
也就是说,当我添加一个新记录时,我会在“添加日期”和“更新日期”列中获取该记录:
2010-07-12 05:00:06|2010-07-12 05:00:06
当我更新那个记录时,它的变化是这样的:
2010-07-12 05:00:06|2010-07-12 05:14:26
我想我不明白为什么更新触发器也会在insert上触发?
蒂亚
蒙特
编辑后添加:有关于如何使其按预期工作的提示吗?