Sqlite—触发器(Trigger)

摘要:
SQLite只支持FOREACHROW触发器,没有FOREACHTATMENT触发器。WHEN子句和触发器操作可以访问和使用表单NEW。列名和OLD列名引用插入、删除或更新行元素,其中列名是与触发器关联的表中的列名。当删除与触发器关联的表时,将自动删除触发器。

一、简单介绍

SQLite 触发器(Trigger)是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。以下是关于 SQLite 的触发器(Trigger)的要点:

  • SQLite 触发器(Trigger)可以指定在特定的数据库表发生 DELETE、INSERT 或 UPDATE 时触发,或在一个或多个指定表的列发生更新时触发。
  • SQLite 只支持 FOR EACH ROW 触发器(Trigger),没有 FOR EACH STATEMENT 触发器(Trigger)。因此,明确指定 FOR EACH ROW 是可选的。
  • WHEN 子句和触发器(Trigger)动作可能访问使用表单 NEW.column-name 和 OLD.column-name 的引用插入、删除或更新的行元素,其中 column-name 是从与触发器关联的表的列的名称。
  • 如果提供 WHEN 子句,则只针对 WHEN 子句为真的指定行执行 SQL 语句。如果没有提供 WHEN 子句,则针对所有行执行 SQL 语句。
  • BEFORE 或 AFTER 关键字决定何时执行触发器动作,决定是在关联行的插入、修改或删除之前或者之后执行触发器动作。
  • 当触发器相关联的表删除时,自动删除触发器(Trigger)。
  • 要修改的表必须存在于同一数据库中,作为触发器被附加的表或视图,且必须只使用 tablename,而不是 database.tablename。
  • 一个特殊的 SQL 函数 RAISE() 可用于触发器程序内抛出异常。

二、语法说明

三、创建触发器(TRIGGERS)

四、删除触发器(TRIGGERS)

五、查询触发器(TRIGGERS)

免责声明:文章转载自《Sqlite—触发器(Trigger)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇树状数组(转载)集束搜索(Beam Search)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL Server 触发器

SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某...

centos6 python 安装 sqlite 解决 No module named ‘_sqlite3′

原文连接: http://blog.csdn.net/jaket5219999/article/details/53512071 系统red hat6.7 也即centos6.7 python3.5.2 安装 django 之后 创建project 以及 import sqlite3 都出现  No module named ‘_sqlite3′  >...

触发器不能读它的问题

http://space.itpub.net/7728585/viewspace-718992 报错如下: SQL> update GPPAYMENTFUND set attribute5='1' where fundapplyno ='20120314500102010001';update GPPAYMENTFUND set attribute5...

android SQLite使用SQLiteOpenHelper类对数据库进行操作

一、 SQLite介绍SQLite是android内置的一个很小的关系型数据库。SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息。博客中有一篇有稍微详细一点的介绍,大家可以去看一下。二、 SQLiteOpenHelper的使用方法SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本。可以通过继承...

各种数据库与.NET Framework类型对照

本文记录各种数据库与.NET类型的对照,包括Oracle,SQL Server,MySQL,SQLite 首先是Oracle的 序号 Oracle数据类型 .NET类型 1 BFILE byte[] 2 BLOB byte[] 3 CHAR string 4 CLOB string 5 DATE DateTime 6 FLO...

MySQL-添加索引或字段时如何不锁表

索引的添加MySQL经历了一下几个历程: 一 .在MySQL 5.5版本之前,添加索引具体是这样的: 1.首先创建一张临时表和原表数据结构相同,将你要添加的索引加上。 2.把原表数据导入临时表。 3.删除原表。 4.将临时表重命名为原表。 这样做有很大问题: 首先对于大数据量的导入需要很长的时间,那么在这段时间里新增或修改的数据没办法处理。 其次如果碰上大...