2 yangchuanling10 yangchuanling10 于 2014.09.22 17:58 提问

特急!触发器中当新增1个表中数据,查询相关数据,把查询出来的数据插入另外一张表

使用触发器,根据条件查询出a和b表中数据,插入到c表。
create table a
(
fid VARCHAR2(44),
fname_l2 VARCHAR2(255),//名称
b_fid VARCHAR2(44),//b表的id
fnumber NVARCHAR2(80)
);

create table b
(
fid VARCHAR2(44),
fname_l2 VARCHAR2(255),//名称
fdesc NVARCHAR2(80)//备注
);
b表中有数据(‘1’,'水果','优质水果')。

create table c
(
a_id VARCHAR2(44),//a表id
a_name VARCHAR2(255),//a表名称
b_name VARCHAR2(255),//b表名称
b_desc NVARCHAR2(80)//b表备注
);

-- 触发器
CREATE OR REPLACE TRIGGER t_c_tri
before insert OR DELETE OR UPDATE
ON a
FOR EACH ROW --说明创建的是行级触发器
BEGIN

INSERT into c(a_id,a_name,b_name_b_desc)
select a.fid,a.fname_l2,b.fname_l2,b.fdesc
from a left join b on a.b_fid=b.fid where a.fid = :new.fid;
END;

正确效果:当a表中插入以下2条数据
(‘101’,‘苹果’,‘1’,‘pg001’)
(‘102’,‘香蕉’,‘1’,‘xj001’)
用触发器实现,
c表中自动插入2条记录
(‘101’,‘苹果’,‘水果’,‘优质水果’)
(‘102’,‘香蕉’,‘水果’,‘优质水果’)

实际效果:c表中没有插入数据。

请大神指点秘笈!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!