删除前删除触发器

时间:2016-11-14 17:53:40

标签: sql db2

我有两张桌子:

表MASTER 表SLAVE,其列ID始终与MASTER.ID

匹配

我想在通过DB2触发器删除MASTER之前删除SLAVE。 这是我写的:

CREATE TRIGGER delete_slave
BEFORE DELETE ON MASTER
REFERENCING OLD AS o FOR EACH ROW 
DELETE FROM SLAVE WHERE ID = o.ID;

当我在DB2 V10.5.0.3数据库上执行查询时,出现以下错误:

  

触发器" SCHEMA1.DELETE_SLAVE"使用不受支持的方式定义   触发了SQL语句.. SQLCODE = -797,SQLSTATE = 42987,DRIVER = 4.17.29   SQL代码:-797,SQL状态:42987

有人可以帮我确定触发的SQL语句中的错误吗?

提前多多谢谢你。

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案,

根据http://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000931.html

  

BEFORE触发器中的SQL-procedure-statement不能:包含任何内容   INSERT,DELETE或UPDATE操作,也不调用任何已定义的例程   使用MODIFIES SQL DATA,如果它不是复合SQL(已编译)。