趁热要打铁,学习就是这样,激情来临的时候,就要尽情发泄!
前面我已经比较全面的介绍的存储过程,因此有了前面的基础再说触发器就简单很多了。
① 定义
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会xx它执行。触发器经常用于加强数据的完整性约束和业务规则等。
② 基本格式
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ DELETE ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) updated_bitmask )
column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
(具体参数说明上百度百科看吧。)
③ 内容
这里我要需要说明的就是关键字 AFTER 和 INSTEAD OF 。
AFTER:执行完数据操作(增删改)语言后触发。FOR 关键字的作用效果与 AFTER 相同。
多用于主键与外键的链接。保证数据的完整性约束。
INSTEAD OF:代替数据操作(增删改),在操作语言执行前触发。
多用于在原操作基础上进行扩充。
需要注意的是,触发器针对的对象是表,因此一个表只能含有一个INSTEAD OF,但可以拥有多个AFTER。
其次是触发器的操作不同于存储过程,它是不可以被编程语言调用的,而存储过程却可以,即触发器是不对外透明的是被动的,它是在数据库设计前就已经编译好的内容。
已投稿到: |
|
---|