mariadb объявляет ошибку синтаксиса переменной

Я использую mariadb с heidisql для выполнения sql:

ОБЪЯВИТЬ @AccountID INT;

Вставить в учетные записи (имя, имя, фамилия, адрес электронной почты, is_admin, is_enabled, дата создания) значения ('testfirstname', 'a', 'testlastname', 'user@email.com', 1, 1, NOW ());

set @AccountID = Last_Insert_Id ();

Я продолжаю получать сообщение об ошибке:

Ошибка QL (1064): у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с @AccountID INT в строке 1 */

Я смотрел на использование Declare, но он говорит, что он используется в функции. Я попытался с BEGIN/END до ЗАЯВКИ и после с той же ошибкой.
Я новичок в синтаксисе MySQL, где это будет работать в SQL Server. так что если кто-нибудь может дать мне знать, что я ошибся, это будет оценено.

Спасибо

4 ответа

Решение

Удалить DECLARE, Это не обязательно.

Я использую Мариадб версии 10.0.19

Вышеуказанная проблема описана и имеет простое решение
здесь: разделители в клиенте mysql

короче:

РАЗДЕЛИТЕЛЬ //
создать функцию.. как обычно
НАЧАТЬ
.. по-прежнему
КОНЕЦ
//
РАЗДЕЛИТЕЛЬ;

(Принятое решение не сработало!)

У меня была та же проблема, я создал свою хранимую процедуру в дизайне

Я написал свою хранимую процедуру функции вBEGINиENDи это сработало

Просто игнорируйте инструкцию DECLARE и выполните команду Insert.

      Insert Into accounts(first_name, mi, last_name, email, is_admin, is_enabled, date_created) Values('testfirstname', 'a', 'testlastname', 'user@email.com', 1, 1, NOW());

set @AccountID = Last_Insert_Id();
SELECT @AccountID;

Вы получите последний вставленный идентификатор таблицы «accounts».

Другие вопросы по тегам