我试图在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工具中取得成功。我不想要其他数据库工具。 请帮帮我。
答案 0 :(得分:2)
该查询中的问题是分号,它是默认的查询分隔符。
要更改HeidiSQL中的分隔符,请在CREATE PROCEDURE
查询上方添加DELIMITER客户端命令:
DELIMITER \\
SELECT 1\\
CREATE PROCEDURE ...\\
DELIMITER ;
HeidiSQL还有一个程序设计器,无需设置分隔符:
答案 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;