如何在heidisql中创建存储过程?

时间:2016-06-15 05:23:23

标签: mysql stored-procedures heidisql

我试图在heidisql(mysql)中创建存储过程。

CREATE PROCEDURE SP_FORM20_POST(
    P_SESSIONID     VARCHAR(256)
)
BEGIN
    INSERT INTO tbForm20
        ( SESSIONID, RegDT)
    VALUES
        ( P_SESSIONID, NOW()); 
END

这是我的查询。我试图创建此过程,但发生了一些错误:

  

错误代码为1064

     

您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得在''附近使用的正确语法。在第8行"。

但是,我不知道错误的语法。有什么问题?

我想在heidisql工具中取得成功。我不想要其他数据库工具。 请帮帮我。

3 个答案:

答案 0 :(得分:2)

该查询中的问题是分号,它是默认的查询分隔符。

要更改HeidiSQL中的分隔符,请在CREATE PROCEDURE查询上方添加DELIMITER客户端命令:

DELIMITER \\
SELECT 1\\
CREATE PROCEDURE ...\\
DELIMITER ;

HeidiSQL还有一个程序设计器,无需设置分隔符:

HeidiSQL procedure designer

答案 1 :(得分:2)

问题是这个。数据库读取代码中的;作为过程的结尾。你可能不打算那样:)。 DELIMITER命令通过将;更改为可自定义的内容(例如$$)来处理此问题。试试这个:

DELIMITER $$
CREATE PROCEDURE SP_FORM20_POST(
    P_SESSIONID     VARCHAR(256)
)
BEGIN
    INSERT INTO tbForm20
        ( SESSIONID, RegDT)
    VALUES
        ( P_SESSIONID, NOW()); 
END$$

答案 2 :(得分:0)

尝试这个

DELIMITER //

CREATE PROCEDURE SP_FORM20_POST(
    P_SESSIONID     VARCHAR(256)
)

BEGIN
    INSERT INTO tbForm20
        ( SESSIONID, RegDT)
    VALUES
        ( P_SESSIONID, NOW());

END //

DELIMITER;