首页 > 解决方案 > MySQL 声明继续处理程序语法错误

问题描述

我正在为 MySQL 编写数据库脚本,但在尝试运行脚本时遇到了问题。insert 语句可能会引发外键约束错误,这很好,但我想通过不将任何内容插入到 archivedBooking 并且不从预订中删除来处理它。然后我想在最后一个 END 之后继续执行;

我收到此错误:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 'DECLARE CONTINUE HANDLER FOR 1452 附近使用的正确语法”

        BEGIN
            DECLARE CONTINUE HANDLER FOR 1452
                BEGIN
                 SELECT 'error, but continue';
                END;

            INSERT INTO archivedBooking
                SELECT BookingId, StartDate, EndDate, StaffId, AvailabilityId 
                FROM booking 
                WHERE EndDate < CURDATE();

            DELETE FROM booking WHERE EndDate < CURDATE();
        END;

标签: mysqldatabaseerror-handling

解决方案


推荐阅读