mysql插入存储过程引发错误

watbbzwu  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(369)

我正在尝试使用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;

任何帮助都将不胜感激。

zphenhs4

zphenhs41#

就你的问题而言,你只是少了一个问题 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 ;

文档中解释了为什么需要这样做:
如果使用mysql客户机程序定义包含分号字符的存储程序,则会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符,以使mysql将整个存储程序定义传递给服务器。
要重新定义mysql分隔符,请使用 delimiter 命令。

相关问题