在删除mysql之前创建触发器

时间:2018-07-30 16:45:01

标签: mysql database mysql-error-1064 database-trigger

我有两个表car_ridecar_ride_saved

car_ride                                 car_ride_saved
id |  person | car | start |          id | person | car | start | saved

在删除car_ride中的行之前,我希望将该行保存在car_ride_saved中。

我决定在数据库级别进行处理-我决定创建一个触发器:

DELIMITER $$
CREATE TRIGGER before_car_ride_delete 
    BEFORE DELETE ON car_ride
    FOR EACH ROW 
BEGIN
    INSERT INTO car_ride_saved (
        person, car, start, saved
    ) VALUES(
        OLD.person, OLD.car, OLD.start, NOW()
    );
END$$
DELIMITER;

但是,这抱怨语法错误。我正在运行mysql 8和(或)5.6。

在两个版本的语法中,根据thisthis都是正确的(如果我没有忽略一些细节的话)。

错误是

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'person, start, car, saved
    ) VALUES(
        OLD.person, OLD.car, OLD.start , NOW()
' at line 6 

这是什么引起问题? 感谢您的帮助!

0 个答案:

没有答案