在idea中使用数据库MySQL8.0版本报错“ERROR 1064 (42000) at line 3 in file: 'C:\Users\86191\AppData\Local\Temp\DBN-16741746345414122312.sql': 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 '' at line 13”
代码如下:
CREATE PROCEDURE p_adduser(
IN dlm varchar(20),
IN yhm varchar(20),
IN mm varchar(11),
IN xb char(1),
IN sfzh char(18),
IN sjh char(11),
IN dzyx varchar(20),
IN lxh char(1)
)
BEGIN
INSERT INTO tbluser(loginName, userName, upassword, sex, identityCode, mobile, email, utype)
VALUES (dlm, yhm, mm, xb, sfzh, sjh, dzyx, lxh);
end;
请问该怎么修改呢
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据错误信息,看起来是在第13行出现了语法错误,然而您提供的代码只有12行,因此可能是代码截断导致的错误。不过我还是可以根据您提供的代码,针对可能的问题给出一些修改建议。
首先,MySQL 存储过程的语法需要使用 DELIMITER 命令来重新定义语句分隔符,否则在执行多条语句时可能会出现语法错误。因此,您可以尝试在代码开头添加以下语句:
DELIMITER $$
然后,在存储过程的 END 语句之后,也需要使用 DELIMITER 重新定义语句分隔符,例如:
END $$
DELIMITER ;
最终的代码应该类似于以下内容:
DELIMITER $$
CREATE PROCEDURE p_adduser(
IN dlm varchar(20),
IN yhm varchar(20),
IN mm varchar(11),
IN xb char(1),
IN sfzh char(18),
IN sjh char(11),
IN dzyx varchar(20),
IN lxh char(1)
)
BEGIN
INSERT INTO tbluser(loginName, userName, upassword, sex, identityCode, mobile, email, utype)
VALUES (dlm, yhm, mm, xb, sfzh, sjh, dzyx, lxh);
END $$
DELIMITER ;
请注意,每个语句后面都需要使用分号作为结束符,而在存储过程中,语句分号和存储过程 END 语句的分隔符是不同的。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢