首页 > 数据库技术 > 详细

【数据库】触发器

时间:2019-05-20 10:39:58      阅读:346      评论:0      收藏:0      [点我收藏+]

1.格式

create trigger trigger_name
  on {table_name | view_name}
  {for | After | Instead of }
  [ insert, update,delete ]
  as
  sql_statement

2.例子(若分数增加了10%,则记录到另一个表中)

create trigger sc_t
after update of grade on sc
referencing 
   oldrow as oldtuple
   newrow as newtuple
for each row
when (newtuple.grade >= 1.1 *oldtuple.grade)
insert into sc_u (sno,cno,oldgrade,newgrade)
values(oldtuple.sno,oldtuple.cno,oldtuple.grade,newtuple.grade)

3.例子(将增加的学生个数记录到表中)

create trigger sc_t
after inserted
referencing
new table as delta
for each statement
insert into studentInsertlog(Numbers)
select count(*) from delta

 4.例子(工资不得低于4000,否则则修改为4000)

create trigger insert_or_update_sal
before insert or update on teacher
referencing new row as newtuple
for each row
begin 
if (newtuple.kob=教授)and(newtuple.sal<4000)
  then newtuple.sal=4000
end if 
end 

 

【数据库】触发器

原文:https://www.cnblogs.com/SeasonBubble/p/10892029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!