当条件满足时 触发器做增删改

create or replace trigger trg_tab_sorting_theme_change
before insert or update of PACKAGE_TYPE or delete
on TAB_SORTING_THEME
for each row
declare
-- local variables here
begin
if inserting then

if :new.PACKAGE_TYPE='分拣机方案' then
INSERT INTO tab_sorting_themes T
(T.THEME_NAME,
T.GUID,
T.PACKAGE_TYPE,
T.BL_START,
T.PRINT_STYLE,
T.INSERT_DATE,
T.REGISTER_SITE_CODE,
T.REGISTER_MAN_CODE,
T.PRINT_STYLE_NAME,
T.SERVICE_PROVIDER_CODE,
T.SERVICE_NAME)
VALUES
(:new.THEME_NAME,
:new.GUID,
:new.PACKAGE_TYPE,
:new.BL_START,
:new.PRINT_STYLE,
:new.INSERT_DATE,
:new.REGISTER_SITE_CODE,
:new.REGISTER_MAN_CODE,
:new.PRINT_STYLE_NAME,
:new.SERVICE_PROVIDER_CODE,
:new.SERVICE_NAME);
end if;

elsif updating then
if :new.PACKAGE_TYPE='分拣机方案' then
update tab_sorting_themes a
set a.THEME_NAME = :new.THEME_NAME,
a.PACKAGE_TYPE = :new.PACKAGE_TYPE,
a.PRINT_STYLE = :new.PRINT_STYLE,
a.REGISTER_SITE_CODE = :new.REGISTER_SITE_CODE,
a.REGISTER_MAN_CODE = :new.REGISTER_MAN_CODE,
a.PRINT_STYLE_NAME = :new.PRINT_STYLE_NAME,
a.SERVICE_PROVIDER_CODE = :new.SERVICE_PROVIDER_CODE,
a.SERVICE_NAME = :new.SERVICE_NAME
where a.GUID = :new.GUID;
end if;
else
if :old.PACKAGE_TYPE = '分拣机方案' then
delete tab_sorting_themes a where a.guid = :old.guid;
end if;
end if;
end trg_tab_sorting_theme_change;

转载于:https://www.cnblogs.com/yangpeng-jingjing/p/9225919.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库中,当表之间存在外键关联,进行增删记录需要注意以下几个事项: 1. 插入记录:如果要向一个表中插入新的记录,需要确保其关联的外键在关联表中存在对应的记录,否则会违反外键约束导致插入失败。因此,在插入新记录之前,应先检查相关的外键约束和关联表的数据完整性。 2. 更新记录:如果要更新表中的某条记录,可能会涉及到外键关联。在更新,需要确保更新后的值满足关联表的外键约束条件,否则会导致更新失败。同样,在更新之前,应先检查相关的外键约束和关联表的数据完整性。 3. 删除记录:如果要删除表中的某条记录,同样需要考虑外键关联。如果该记录被其他表所引用,并且存在外键关系,则删除操作会违反外键约束,导致删除失败。在这种情况下,可以选择先删除与该记录相关的其他记录,或者禁用外键约束进行删除操作。 4. 维护数据完整性:在增删记录,需要保持数据的完整性。这意味着要确保在任何候都满足外键约束条件,即关联表中的外键值必须存在于被关联表中。为了维护数据完整性,可以使用级联操作、触发器数据库功能来处理外键约束。 总之,当表之间存在外键关联,在进行增删记录操作需要注意外键约束和数据完整性,以确保数据的一致性和正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值