删除触发器
问题描述:
之前删除我有两个表:删除触发器
表少爷 表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语句?
非常感谢您提前。
答
OK我找到了答案,
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).
尝试'... FOR EACH ROW BEGIN DELETE FROM SLAVE WHERE ...; END' – mustaccio