需要在非常大的数据库中保持行数。在我的程序中,行计数需要足够的次数才能运行Count(*)太慢,所以我将继续运行计数以在SQLITE中解决这个问题。
CREATE TRIGGER RowCountUpdate AFTER INSERT ON LastSample
BEGIN
UPDATE BufferControl SET NumberOfSamples = NumberOfSamples +
(SELECT Count(*) FROM Inserted);
END;
所以从这里开始我想获取当前行数(NumberOfSamples)并将其增加一行,这些行受插入影响的行数(与DELETE和递减相同)。在Sqlite的C API中,这是通过Sqlite3_Changes()完成的。但是,我不能在此脚本中使用该功能。我环顾四周,看到有些人正在使用SELECT Count(*)FROM Inserted,但我认为Sqlite不支持。
是否有任何声明Sqlite识别出包含受INSERT和DELETE查询影响的行数?
答案 0 :(得分:1)
SQLite具有changes() SQL function,但与sqlite3_changes()
API函数类似,它会报告上一个已完成语句的行数。
在触发器执行期间,触发语句尚未完成。
只需使用FOR EACH ROW触发器,每行添加1个。