设为首页 加入收藏

TOP

SQLite3 设置插入触发器
2015-11-10 12:17:37 】 浏览:9527
Tags:SQLite3 设置 插入 触发器

需求: 数据库中表t_VerifyCsmDetail需要最多保存10W条记录,超出时删除最旧的那一条。


思路:设置插入触发器。插入前先判断表中记录总数,如果大于99999条,则删除最旧的一条记录。


代码如下:


create trigger VRF_insert


before insert on t_VerifyCsmDetail


for each row


when((select COUNT(*) fromt_VerifyCsmDetail)>99999)


begin


delete from t_VerifyCsmDetail where LocalNO=(select MIN(LocalNO) from t_VerifyCsmDetail);


end


其中,VRF_insert是触发器名;before表示在插入之前判断;for each row 可省略,具体含义请百度;


when((select COUNT(*) from t_VerifyCsmDetail)>1)表示当总记录数大于99999条时触发删除记录操作;


语句delete from t_VerifyCsmDetail where LocalNO=(select MIN(LocalNO)from t_VerifyCsmDetail);中,


t_VerifyCsmDetail是表名,LocalNO为其中一个字段的字段名(在我的表中被设置为自增主键类型为int),


select MIN(LocalNO) from t_VerifyCsmDetail表示在表中字段LocalNO的最小值,


delete from t_VerifyCsmDetail whereLocalNO=xx;表示删除此条记录。


注意:如果在begin和end之间有多条SQL语句,则每条语句必须用分号隔开;end后面无需分号。


另外,一定要确保sqlite3已经被完整的移植到linux下。


我之所以刚刚开始触发器设置不成功,就是因为sqlite3静态库libsqlite3.so.0和执行sqlite3 的命令文件未放置在/lib和/bin下。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇闪回事务查询Flashback Transacti.. 下一篇MySQL 储存过程以及 python callp..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目