PL/SQL 触发器仅在一个表上插入特定记录时更新另一个表

问题描述 投票:0回答:1

引用了这个答案,它会在

tableA
上的每次插入时触发更新。


场景是,

tableA
中,我们有
WATERMARK_FLAG
类型的
CHAR(1)
列,其可能值为
Y
N

tableB
中,我们有
PROCESSED_FLAG
类型的
CHAR(1)
列,其可能值为
Y
N

两个表之间没有主键-外键关系

两个表中的主键列相同

PK(col_1,col_3,col_4)


INSERT
中记录的
tableA
上,将
WATERMARK_FLAG
作为
Y
更新
PROCESSED_FLAG
,在
Y
 的所有行中使用 
tableB

如何为特定

INSERT
提供PL/SQL触发器语法?

database oracle plsql triggers
1个回答
0
投票

就是这个

CREATE OR REPLACE TRIGGER bi_tableA
  BEFORE INSERT ON bi_tableA
  FOR EACH ROW
  WHEN (WATERMARK_FLAG = 'Y')
DECLARE
BEGIN
  UPDATE tableB
  SET PROCESSED_FLAG = 'Y';
END bi_tableA;
/

但是,性能可能会下降。但我认为这只是一个练习。

© www.soinside.com 2019 - 2024. All rights reserved.