MySQL Объявить ошибку синтаксиса обработчика продолжения - PullRequest
0 голосов
/ 22 марта 2020

Я работаю над сценарием базы данных для MySQL и столкнулся с проблемой при попытке запустить сценарий. Оператор вставки может выдать ошибку ограничения внешнего ключа, что нормально, но я хочу обработать ее, не вставляя что-либо в архивную книгу и не удаляя ее из бронирования. Затем я хочу продолжить выполнение после последнего END;

Я получаю эту ошибку: «У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать синтаксис для использования около 'ОБЪЯВЛЯЙТЕ ПРОДОЛЖИТЬ ОБРАЩЕНИЕ ДЛЯ 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;
...