![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
mysql触发器 删除某张表的一条数据时,同时触发删除两张与之有关联的表(id关联)
这是我写的,sql语句部分有错误,第二个old处报错,不知道并列的删除要怎么写,求指点CREATETRIGGERsche_building_delAFTERDELETEO...
这是我写的,sql语句部分有错误,第二个old处报错,不知道并列的删除要怎么写,求指点
CREATE TRIGGER sche_building_del AFTER DELETE ON classroomtbl FOR EACH ROW
BEGIN
DELETE FROM schedulebasetbl WHERE schedulebasetbl.`classroom_id`=old.id;
DELETE FROM schedulechangetbl WHERE schedulechangetbl.`classroom_id`=old.id;
END sche_building_del; 展开
CREATE TRIGGER sche_building_del AFTER DELETE ON classroomtbl FOR EACH ROW
BEGIN
DELETE FROM schedulebasetbl WHERE schedulebasetbl.`classroom_id`=old.id;
DELETE FROM schedulechangetbl WHERE schedulechangetbl.`classroom_id`=old.id;
END sche_building_del; 展开
展开全部
首先你要重新设定一下SQL语句分隔符,因为默认是分号(;),所以你的触发语句中;会当作是SQL语句的分割,就会出错,按照你上面的语句应该这样写:
DELIMITER $
CREATE TRIGGER sche_building_del AFTER DELETE ON classroomtbl FOR EACH ROW
BEGIN
DELETE FROM schedulebasetbl WHERE schedulebasetbl.`classroom_id`=OLD.id;
DELETE FROM schedulechangetbl WHERE schedulechangetbl.`classroom_id`=OLD.id;
END$
上面的DELIMITER $就是申明$为SQL的分隔符,你试一试
DELIMITER $
CREATE TRIGGER sche_building_del AFTER DELETE ON classroomtbl FOR EACH ROW
BEGIN
DELETE FROM schedulebasetbl WHERE schedulebasetbl.`classroom_id`=OLD.id;
DELETE FROM schedulechangetbl WHERE schedulechangetbl.`classroom_id`=OLD.id;
END$
上面的DELIMITER $就是申明$为SQL的分隔符,你试一试
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询