【数据库】触发器

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 

 

posted @ 2019-05-20 08:45  SeasonBubble  阅读(460)  评论(0)    收藏  举报