重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创建两个表:
成都创新互联自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的数据,剩下的自己验证吧, 不给你截图了
一般在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;
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更新一条记录之前)。
create or replace trigger qwx_tri after insert
on QWXMX for each row
begin
insert into FEIYONG (qxdh) values(:new.qxdh)
end;
你写的不伦不类的,和sqlserver混淆了吧