oracle如何建触发器 oracle建触发器语句

oracle 写一个触发器,新手

创建两个表:

成都创新互联自2013年起,先为桃源等服务建站,桃源等地企业,进行企业商务咨询服务。为桃源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

create table a

(stdid int,

stdname varchar2(10));

create table b

(stdid int,

stdname varchar2(10));

创建触发器:

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表结果:

如果业务需要在插入前作判断

就是说  当且仅当 表A插入的 stdid在表C中存在  也就是说

表A新插入的的 stdid in   select stdid from C 时 才执行下面插入表B的动作

创建个c表

create table c

(stdid int);

插入一条数据:

insert into c values (1);

commit;

触发器修改为:

CREATE OR REPLACE TRIGGER tr_insert

after insert

ON a

FOR EACH ROW

declare  v_count int;

BEGIN

select count(*) into v_count from c where stdid =:new.stdid;

if v_count=0

then

INSERT INTO b(stdid,stdname)

VALUES(:new.stdid,:new.stdname);

end if;

END;

然后分别往a表中插入id=1和id=2的数据,剩下的自己验证吧, 不给你截图了

Oracle如何创建触发器

一般在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;

oracle建立触发器 success with compilation error

1、oracle数据库中的触发器,insert into users values('05','trigger','普通','trigger','拥有一般权限');。

2、oracle数据库中的触发器(触发器dml删除三条记录后)delete from users where u_type='其他';。

3、oracle数据库中的触发器(替代触发器修改记录信息)。

4、oracle数据库中的触发器(触发器dml插入一条记录,日志之前)。

5、oracle数据库中的触发器delete orders where o_id='200708021850';。

6、oracle数据库中的触发器(触发器dml更新一条记录之前)。

Oracle创建触发器

create or replace trigger qwx_tri after insert

on QWXMX for each row

begin

insert into FEIYONG (qxdh) values(:new.qxdh)

end;

你写的不伦不类的,和sqlserver混淆了吧

网页标题:oracle如何建触发器 oracle建触发器语句
URL地址:https://www.cdcxhl.com/article32/hicesc.html

成都网站建设公司_创新互联,为您提供外贸网站建设用户体验云服务器网站营销面包屑导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发