mysql插入存储过程抛出错误
Posted
技术标签:
【中文标题】mysql插入存储过程抛出错误【英文标题】:mysql insert stored procedure throwing an error 【发布时间】:2020-05-23 22:51:31 【问题描述】:我正在尝试使用 Heidisql 在 mysql 中编写存储过程。我不断收到错误。下面是截图:
下面是存储过程的脚本。
CREATE PROCEDURE index_insertPersonadata
(
IN p_firstName VARCHAR(50),
IN p_middleName VARCHAR(50),
IN p_lastName VARCHAR(50),
IN p_address VARCHAR(200),
IN p_City VARCHAR(50),
IN p_State VARCHAR(50),
IN p_ZIP VARCHAR(50)
)
BEGIN
INSERT INTO personalrecord(
FirstName,
MiddleName,
LastName,
Address,
City,
state,
ZIP
)
VALUES
(
p_firstName,
p_middleName,
p_lastName,
p_address,
p_City,
p_State,
p_ZIP
);
END;
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:就您的问题而言,您只是缺少delimiter
命令:
DELIMITER //
CREATE PROCEDURE index_insertPersonadata (
IN p_firstName VARCHAR(50),
IN p_middleName VARCHAR(50),
IN p_lastName VARCHAR(50),
IN p_address VARCHAR(200),
IN p_City VARCHAR(50),
IN p_State VARCHAR(50),
IN p_ZIP VARCHAR(50)
)
BEGIN
INSERT INTO personalrecord(FirstName, MiddleName, LastName, Address, City, state, ZIP)
VALUES(p_firstName, p_middleName, p_lastName, p_address, p_City, p_State, p_ZIP);
END;
//
DELIMITER ;
为什么你需要这个是explained in the documentation:
如果使用mysql客户端程序定义一个包含分号字符的存储程序,就会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符,以使mysql将整个存储的程序定义传递给服务器。
要重新定义 mysql 分隔符,请使用
delimiter
命令。
【讨论】:
以上是关于mysql插入存储过程抛出错误的主要内容,如果未能解决你的问题,请参考以下文章