Код: Выделить всё
DELIMITER $$
CREATE TRIGGER trg_buckets_before_insert
BEFORE INSERT ON Buckets
FOR EACH ROW
BEGIN
DECLARE auth_status TINYINT;
SELECT is_authorized INTO auth_status
FROM Devices
WHERE device_id = @CURRENT_DEVICE;
IF auth_status = 0 OR auth_status IS NULL THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Device not authorized';
END IF;
END$$
DELIMITER ;
< /code>
Однако, когда я выполняю код, я получаю следующие ошибки: < /p>
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 'END$$
DELIMITER ;' at line X
Error executing statement: DECLARE auth_status TINYINT
Error executing statement: END$$
Error: 1064 (42000): You have an error in your SQL syntax.
< /code>
Я использую MySQL версию 8.0.29, и я проверил запуск операторов через DBEAVER. И как я могу правильно создать триггеры без этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/794 ... r-near-end