代码之家  ›  专栏  ›  技术社区  ›  Darlyn

在删除mysql之前创建触发器

  •  0
  • Darlyn  · 技术社区  · 7 年前

    我有两张桌子, car_ride car_ride_saved .

    car_ride                                 car_ride_saved
    id |  person | car | start |          id | person | car | start | 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。

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

    错误是

    #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 回复  |  直到 7 年前
    推荐文章