我在为项目创建数据库触发器时遇到问题
我之前从未在MySQL中使用触发器,当我尝试执行下面的代码时,它说第4行的''错误...
这是代码
CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
FOR EACH ROW BEGIN
IF NEW.active=2 THEN
INSERT INTO mms_cars_sold SELECT * FROM mms_cars WHERE ad_id = OLD.ad_id;
DELETE FROM mms_cars SELECT * FROM mms_cars WHERE ad_id = OLD.ad_id;
END IF;
END;
我不确定我是否正确创建了这个,所以请原谅任何业余错误。我的目标是在汽车状态设置为2(即已售出)时将活动表中的行信息复制到存档表,以便最大化活动表的搜索效率
希望有人可以帮助我
亲切的问候
百里
修改
我现在有了以下
DELIMITER //
CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
FOR EACH ROW
BEGIN
IF NEW.active=2 THEN
INSERT INTO mms_cars_sold SELECT * FROM mms_cars WHERE ad_id=OLD.ad_id;
DELETE FROM mms_cars WHERE ad_id=OLD.ad_id;
END IF;
END //
DELIMITER;
它产生了这个错误:
答案 0 :(得分:0)
1235 - 此版本的MySQL尚不支持“多重触发器” 与一个表'
具有相同的动作时间和事件
这意味着mms_cars已经有了更新触发器。
答案 1 :(得分:0)
您应该尝试在重新创建新触发器之前放下触发器。
DELIMITER //
DROP TRIGGER archiveCar;
CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
...
DELIMITER;