mariadb声明变量语法错误

vnjpjtjt  于 2022-11-08  发布在  其他
关注(0)|答案(4)|浏览(205)

我使用mariadb和heidisql来执行sql:
声明@帐户ID INT;
插入到帐户(名字,mi,姓氏,电子邮件,是管理员,是启用,创建日期)值('测试名字','a','测试姓氏','user@email.com',1,1,NOW());
如果您有一个新的插入ID,请使用此方法。
我不断收到错误:
QL错误(1064):您的SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,了解在第1行“@AccountID INT”附近使用的正确语法 */
我在看声明的用法,但它说它用在函数中。我试过在声明之前和之后使用BEGIN/END,出现同样的错误。
我对mysql语法很陌生,这将在sql server中工作。所以如果有人能让我知道我错了什么,我将不胜感激。
谢谢

kupeojn6

kupeojn61#

我使用的是mariadb版本10.0.19
对上述问题进行了描述,并给出了简单的解决方案
here: Delimiters in the mysql Client
简而言之:

限定符//

照常创建函数..
开始
..像往常一样
结束

**//

定界器;**
(可接受的解决方案不起作用!)

nfeuvbwi

nfeuvbwi2#

卸下DECLARE。不需要。

2nc8po8w

2nc8po8w3#

只需忽略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”表的最后插入的ID。

kknvjkwl

kknvjkwl4#

我在设计中创建存储过程时遇到了同样的问题
第一次
我在BEGINEND中编写了函数的存储过程,它工作正常

相关问题