一般在sqlplus或者其他第三方oracle工具中,按照语法及需求写好代码,直接执行创建过程即可.
一般语法如下:
CREATE?[OR?REPLACE]?TRIGGER?trigger_name
{BEFORE?|?AFTER?}
{INSERT?|?DELETE?|?UPDATE?[OF?column?[,?column?...]]}
[OR?{INSERT?|?DELETE?|?UPDATE?[OF?column?[,?column?...]]}...]
ON?[schema.]table_name?|?[schema.]view_name?
[REFERENCING?{OLD?[AS]?old?|?NEW?[AS]?new|?PARENT?as?parent}]
[FOR?EACH?ROW?]
[WHEN?condition]
PL/SQL_BLOCK?|?CALL?procedure_name;
这样做是意思不大.
但对于触发器应该这样写
SQL create table test(col1 int);
Table created
SQL
SQL CREATE OR REPLACE TRIGGER BIUD_SCROE_A
①.0
①.1 exception
Trigger created
SQL insert into test values(1);
insert into test values(1)
create or replace trigger qwx_tri after insert
on QWXMX for each row
begin
insert into FEIYONG (qxdh) values(:new.qxdh)
end;
你写的不伦不类的,和sqlserver混淆了吧
创建两个表:
create?table?a
(stdid?int,
create?table?b
创建触发器:
CREATE?OR?REPLACE?TRIGGER?tr_insert?
after?insert
ON?a
FOR?EACH?ROW?
BEGIN
INSERT?INTO?b(stdid,stdname)
VALUES(:new.stdid,:new.stdname);
END;
验证,在a表中插入数据:
insert?into?a?values?(1,'a');
commit;
验证b表结果:
你说的这东西本身就不适合弄做触发器
std表是部门号与某部门的平均工资
如果往emp里插入一条记录的话,那么整个部门的平均工资就会发生变化
所以这个时候std表里的数据就不是真正的平均工资了
不知道为什么要这么做,你们老师想不开吧?
而且emp1的表结构是什么?
还有,工资低于所属部门的平均工资的职员信息插入到emp1表中?
那么难道不是每插入一个员工的话,emp1表就要插入一遍,那么emp1表里会有N
多重复数据
以上就是土嘎嘎小编为大家整理的oracle触发器怎么建相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!