触发器

简介: 触发器(trigger)通常是指能启动其他设备的设备。在数据库里,触发器则是一类由事件驱动的特殊过程,该事件可以触发其他事件或一系列事件。


触发器(trigger)通常是指能启动其他设备的设备。在数据库里,触发器则是一类由事件驱动的特殊过程,该事件可以触发其他事件或一系列事件。通过数据库系统中的触发器机制,无需用户操作,系统就能够对内部或外部产生的事件自动做出响应。

除实现参照完整性以外,触发器还具有许多其他的功能:1)强化约束 2)跟踪变化 3)级联运行 4)存储过程的调用

触发器由三部分组成:1)事件:插入、删除、修改等引发触发器的操作 2)条件:引发触发器的条件 3)动作:引发触发器后的行为

触发事件包括表中行的插入、删除和修改,即执行insert、delete、update语句。除此以外,还可以指定其他条件为触发条件,如对某字段的修改。触发器的动作通常是一系列SQL语句。

1)创建触发器

create trigger trigi
on customers
for insert
as
begin
  declare @cols int
  set @cols=(select count(*) from customers)
  print 'customers表行数已增加,现在一共是'+space(1)+ltrim(str(@cols)+space(1)+'行。')
end
create tigger trig3
on reg_members
instead of insert
as
begin
  declare @cno_tmp char(5)
  declare @cname_tmp varchar(6)
  set @cno_tmp=(select cno from inserted)
  set @cname_tmp=(select cname from inserted)
  insert into customers values
 (@cno_tmp,@cname_tmp,null,null,'注册会员',null)
end
create trigger trig3
on customers
after insert as
if(select count(*) from customers=100)
begin
  update customers set crank='金卡会员' where cno=(select cno from inserted)
  print '您是第100名注册用户,作为幸运者,系统已将您升级为金卡会员。'
end


2、触发器的更改与删除

alter trigger trig3
on customers
after insert as 
if(select count(*) from customers)=1000
begin
  update customers set crank='VIP' where cno=(select cno from inserted)
  print '您是第1000名注册用户,作为幸运者,系统已将您升级为VIP'
end
drop trigger trig3 



 

目录
相关文章
|
3月前
|
SQL Oracle 关系型数据库
DML触发器
8月更文挑战第22天
|
6月前
|
SQL 数据库
10. 触发器和事件
10. 触发器和事件
|
6月前
|
SQL 存储
使用触发器
使用触发器。
62 5
|
11月前
|
图形学
触发器事件
触发器事件
|
存储 数据库 数据库管理
触发器
一、什么是触发器 触发器(Trigger)是数据库管理系统中的一种特殊类型的存储过程,它是一段与表相关联的代码,当满足特定的条件时,触发器会自动执行。触发器通常与数据库表的插入、更新或删除操作相关联,用于在数据发生变化时执行特定的操作。 触发器可以在以下情况下被触发执行: 1. 插入触发器(INSERT Trigger):当向表中插入新的数据行时,触发器会被执行。 2. 更新触发器(UPDATE Trigger):当更新表中的数据行时,触发器会被执行。 3. 删除触发器(DELETE Trigger):当从表中删除数据行时,触发器会被执行。 触发器可以用于实现以下功能: 1. 数据完整性约束:
56 0
|
存储 SQL 监控
第17章_触发器
第17章_触发器
142 1
|
存储 关系型数据库 MySQL
创建存储过程以及触发器
创建存储过程以及触发器
|
关系型数据库 MySQL 数据库
MySQL数据库(32):触发器 trigger-2
MySQL数据库(32):触发器 trigger
138 0
|
SQL 存储 安全
MySQL数据库(32):触发器 trigger-1
MySQL数据库(32):触发器 trigger
178 0