当前位置: 代码迷 >> DB2 >> DB2删除触发器,高手帮帮忙,解决方法
  详细解决方案

DB2删除触发器,高手帮帮忙,解决方法

热度:5091   发布时间:2013-02-26 00:00:00.0
DB2删除触发器,高手帮帮忙,急
我有两个表   t_el_answer   和t_el_answerItem   两个表是关联的,answer是父表,他的主键answerid   是t_el_answerItem   的外键。我现在要做删除操作,在删除t_el_answer记录的时候,先删除子表t_el_answerItem   里相关记录。

我的触发器代码是:
CONNECT   TO   CBRCBO^
CREATE   TRIGGER   DBADM.DELANSWER   NO   CASCADE   BEFORE     DELETE     ON   DBADM.T_EL_ANSWER     REFERENCING     OLD   AS   OLDROW     FOR   EACH   ROW     MODE   DB2SQL  
BEGIN   ATOMIC
delete   from   T_EL_ANSWERITME   AS   a   where   a.answerid   in   (select   answerid   from   T_EL_ANSWER   AS   b   where   b.answerid=oldrow.answerid);
END^
CONNECT   RESET^


(这个是点显示SQL窗口里显示的内容)
提示错误为
[IBM][CLI   Driver][DB2/NT]   SQL0104N     在   "werid=old.answerid)   "  
之后发现意外的标记   "END "。期望的标记可能包括: " <delim_semicolon> "。     LINE   NUMBER=3.    
SQLSTATE=42601


解释:  

在文本   " <文本> "   后面的指定标记处检测到   SQL
语句中的语法错误。 " <文本> "   字段指示无效标记前面的   SQL   语句中的   20
个字符。  

作为对程序员的帮助,在   SQLCA   的   SQLERRM
字段中,提供了有效标记的部分列表作为
" <标记列表> "。此列表假设语句到该位置为止是正确的。  

不能处理该语句。  

用户响应:  

在指定的标记区域内检查并更正语句。  

  sqlcode   :     -104  

  sqlstate   :     42601  



------解决方案--------------------------------------------------------
建立表的时候,直接设置关联条件,就可以自动删除了,不需要用触发器。
  相关解决方案