问题描述:由于触发器级联删除不可行(主表有评论的时候可以实现删除主表然后触发器删除评论,当主表没有评论的时候只想单
独删除主表,可是仍然触发了触发器的操作,触发器删除报错)
下面是我写的触发器,想在触发器中加个if判断,结果报错啊
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `jnwhfwpt`.`tri_commentDel` AFTER DELETE
ON `jnwhfwpt`.`m_cultureact_gzl`
FOR EACH ROW
BEGIN
DECLARE c VARCHAR(32);
SET c = (SELECT DISTINCT commenttype FROM m_cultureact_gzl);
IF(old.msgCode IN (SELECT commentid FROM p_comment WHERE commenttype = c) )
THEN
DELETE FROM p_comment WHERE commentid = old.msgCode AND commenttype = c;
END IF;
END$$
DELIMITER ;
只好在代码中处理了:
因为每个页面都是单独点击触发的,所以观展聆听、文艺演出的commentType的参数都是写死的,没有什么奇怪的哈
评论表:
话说用代码处理起来就很简单咯,可惜了我的触发器呀,研究了半天
本文探讨了在数据库中使用触发器进行级联删除时遇到的问题,并尝试通过添加条件判断来避免不必要的操作。最终选择在应用程序层面处理该逻辑。
535

被折叠的 条评论
为什么被折叠?



