删除触发器

删除触发器

问题描述:

之前删除我有两个表:删除触发器

表少爷 表SLAVE与列的ID总是MASTER.ID匹配

我想通过DB2删除主之前删除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我得到以下错误的查询:

The trigger "SCHEMA1.DELETE_SLAVE" is defined with an unsupported triggered SQL statement.. SQLCODE=-797, SQLSTATE=42987, DRIVER=4.17.29 SQL Code: -797, SQL State: 42987

有人能帮助我找出什么是错的触发的SQL语句?

非常感谢您提前。

+0

尝试'... FOR EACH ROW BEGIN DELETE FROM SLAVE WHERE ...; END' – mustaccio

OK我找到了答案,

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

The SQL-procedure-statement in a BEFORE trigger cannot: Contain any INSERT, DELETE, or UPDATE operations, nor invoke any routine defined with MODIFIES SQL DATA, if it is not a compound SQL (compiled).