yangchuanling10 2014-09-22 09:58 采纳率: 0%
浏览 1509

特急!触发器中当新增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表中没有插入数据。

请大神指点秘笈!

  • 写回答

1条回答 默认 最新

  • weixin_53449607 2021-06-16 08:56
    关注

    before insert 应该写成新增之后吧

    评论

报告相同问题?

悬赏问题

  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示