在删除时创建触发器,如果​​sqlite上的表为空,则重置自动增量id

时间:2016-06-15 20:16:34

标签: sqlite

我想创建一个触发器,如果​​表刚刚变空,它会将自动增量id重置为0。我尝试了以下内容:

CREATE TRIGGER reset_autoincrement AFTER DELETE ON temp WHEN count(*) = 0 
BEGIN
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'temp';
END

虽然SQL似乎是正确的,但它没有做我想要的。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

WHEN子句中的表达式不在表的上下文中;没有表格的count(*)会返回1

改为使用子查询:

... WHEN (SELECT count(*) FROM temp) = 0 ..