如何编写PL/SQL触发器:插入特定记录时更新另一表
PL/SQL 触发器实现:插入特定记录时更新另一表所有行
以下是满足需求的PL/SQL触发器语法:
CREATE OR REPLACE TRIGGER trg_tableA_after_insert AFTER INSERT ON tableA FOR EACH ROW WHEN (NEW.WATERMARK_FLAG = 'Y') DECLARE BEGIN UPDATE tableB SET PROCESSED_FLAG = 'Y'; END; /
关键点说明:
AFTER INSERT ON tableA:指定触发器在tableA执行插入操作后触发FOR EACH ROW:行级触发器,每插入一行符合条件的记录都会触发一次更新WHEN (NEW.WATERMARK_FLAG = 'Y'):仅当插入的新记录中WATERMARK_FLAG值为'Y'时,才执行触发器逻辑- 触发器体中的
UPDATE语句:直接将tableB所有行的PROCESSED_FLAG设为'Y'
注意:若
tableB数据量极大,全表更新可能引发性能问题,建议根据实际业务场景评估是否需要优化(需求明确要求更新所有行,故此处保留全表更新逻辑)
内容的提问来源于stack exchange,提问作者overexchange
相关产品推荐
相关产品推荐

