1、触发器的概念
��所谓触发器(trigger)就是一系列SQL语句,当对数据库做修改(包括插入、删除和更新)时,它自动被系统执行。
��2、要设置触发器机制,必须满足两个条件:
��①�指明什么条件下触发器被执行,即触发条件;
��②�指明触发器执行的动作是什么,即触发什么。
��3、触发器的利弊
��①�一方面能够保证数据库的一致性;
��②�另一方面,检测和维护触发器需要很大的开销,降低了数据库增、删、改的效率!
��4、举例
��例如,当银行某客户的帐户透支时,请将其帐户余额设为0,并且建立一笔贷款,其金额为透支额。规定这笔贷款的贷款号为透支帐户的帐户号。
define trigger overdraft on update of account T
(if new T.balance < 0 then (
insert into loan
values(T.branch-name, T.account-number, -new T.balance)
insert into borrower (select customer-name, account-number
�����������from depositor
����where depositor.account-number = T.account-number)
update account S set S.balance = 0
where S.account-number = T.account-number))
��从广义上讲,约束实际上就是对数据库的一种限制,因此,可以把很多内容都看作是数据库的约束。例如,定义在一个关系上的约束可以有:
��①�域约束
��②�DEFAULT(缺省值约束)
��③�NOT NULL(非空值约束)
��④�PRIMARY KEY(主码约束)
��⑤�FOREIGN KEY(外码约束)
��⑥�CHECK(check约束)
而定义在整个数据库上的约束可以有:
��①�断言
��②�触发器对约束来说,要注意以下两个问题:
����⑴�约束与系统性能的关系
����⑵�约束的一致性检查顺序
������①�域约束
������②�DEFAULT
������③�NOT NULL
������④�CHECK
������⑤�对有FOREIGN KEY约束的参照表的检查
������⑥�对有FOREIGN KEY约束的被参照表的检查
������⑦�PRIMARY KEY
������⑧�断言
������⑨�触发器
|
|