Я изо всех сил пытаюсь получить приведенный ниже триггер для компиляции с моей базой данных.Прямо сейчас его MariaDB v5.5.56.Я пробовал этот синтаксис в онлайн-валидаторах, и вот результаты:
SQLFiddle:
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 '' at line 4
https://www.eversql.com/sql-syntax-check-validator/
Great work, the query's syntax is valid!
https://rextester.com/l/mysql_online_compiler
Compiles with no errors
В моей среде я получаю:
Error Code: 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 '' at line 4.
Кажется, моя ошибка совпадает с ошибкой SQLFiddle ... но странно, что другие парсеры работали просто отлично.Может быть, что-то не так с моим синтаксисом, основанным на моей версии БД?
Вот что я пытаюсь выполнить:
CREATE TRIGGER insert_pad
BEFORE INSERT on vehicles FOR EACH ROW
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE localid CHAR(17);
DECLARE veh_mod CHAR(17);
DECLARE cur1 CURSOR FOR select id, RPAD(vin, 17,'Q') from vehicles where length(rtrim(vin)) < 17;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO localid, veh_mod;
IF done THEN
LEAVE read_loop;
END IF;
UPDATE vehicles SET vin = veh_mod WHERE id = localid;
END LOOP;
CLOSE cur1;
END;
Если у кого-то есть мысли, я бы хотел их услышать!Еще раз спасибо!