视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQLite3设置插入触发器
2020-11-09 08:14:54 责编:小采
文档


需求: 数据库中表t_VerifyCsmDetail需要最多保存10W条记录,超出时删除最旧的那一条。思路:设置插入触发器。插入前先判断表中记

需求: 数据库中表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下。

SQLite3中存储类型和数据类型结合文档解析

SQLite3 安装、基本操作

Ubuntu 12.04下SQLite数据库简单应用

Ubuntu 12.04下安装 SQLite及其使用方法

SQLite 数据库入门基础教程

SQLite 的详细介绍:请点这里
SQLite 的下载地址:请点这里

本文永久更新链接地址:

下载本文
显示全文
专题