5

我使用 mariadb 和 heidisql 来执行 sql:

声明@AccountID INT;

插入帐户(first_name, mi, last_name, email, is_admin, is_enabled, date_created) 值('testfirstname', 'a', 'testlastname', 'user@email.com', 1, 1, NOW());

设置@AccountID = Last_Insert_Id();

我不断收到错误消息:

QL 错误 (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“@AccountID INT”附近使用正确的语法 */

我正在查看 Declare 的用法,但它说它用于函数中。我在 DECLARE 之前和之后尝试过 BEGIN/END,但同样的错误。
我是 mysql 语法的新手,这将在 sql server 中工作。因此,如果有人可以让我知道我做错了什么,将不胜感激。

谢谢

4

3 回答 3

8

我正在使用 mariadb 版本 10.0.19

上面的问题在此处进行了描述并且有一个简单的解决方案
:Delimiters in the mysql Client

简而言之:

DELIMITER //
创建函数 .. 像往常一样
BEGIN
.. 像往常一样
END
//
DELIMITER ;

(接受的解决方案没有奏效!)

于 2015-06-10T20:23:34.300 回答
2

删除DECLARE. 这不是必需的。

于 2014-01-12T01:41:03.063 回答
0

只需忽略 DECLARE 语句,然后执行插入。

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;

将为您获取“帐户”表的最后插入的 ID。

于 2022-01-07T18:57:58.130 回答