Необъяснимая ошибка MySQL # 1064 для пустой строки при создании после обновления запуска? - PullRequest
0 голосов
/ 29 августа 2018

Я работал под управлением MySQL с версией сервера: 10.1.34-MariaDB (распространяется в XAmpp 7.2.7-0-VC15-installer) на компьютере под управлением Windows 8.1, используя PhpMyadmin в Google Chrome для доступа к базе данных Mysql, и я получил эту ошибку:

# 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' в строке 4

для этого синтаксиса триггера создания:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
SET @jns = 1;
END

Когда я изменил код следующим образом:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN

END

или как это:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
-- SET @jns = 1;
END

это сработало.

Может ли кто-нибудь помочь мне показать мне, что не так? Спасибо.

1 Ответ

0 голосов
/ 29 августа 2018

Вам необходимо использовать директиву DELIMITER для изменения разделителя запроса, чтобы вы могли использовать ; внутри определения триггера.

DELIMITER $$
DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate$$
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
SET @jns = 1;
END$$
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...