0

我的存储过程的代码是:

CREATE PROCEDURE insert_sait_inf(IN name TEXT,IN title TEXT,IN link TEXT)

BEGIN

INSERT INTO sait_inf(sait_name,sait_title,sait_link) VALUES (name,title,link);

END

但错误是:

  #1064 - 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 3 
4

1 回答 1

0

定义存储程序中所述:

  • 如果使用mysql客户端程序定义包含分号字符的存储程序,就会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符,以使mysql将整个存储的程序定义传递给服务器。

    phpMyAdmin 也是如此。

  • 要重新定义mysql分隔符,请使用delimiter命令。

    并非所有版本的 phpMyAdmin 都能识别该delimiter命令;相反,可以使用DelimiterSQL 输入框下方的输入框:请参阅如何在 phpMyAdmin (MySQL) 中编写 SP?

  • 下面是一个函数示例,该函数接受一个参数,使用 SQL 函数执行操作并返回结果。在这种情况下,不需要使用delimiter,因为函数定义不包含内部;语句分隔符:

    mysql> CREATE FUNCTION hello (s CHAR(20))
    mysql> RETURNS CHAR(50) DETERMINISTIC
        ->RETURN CONCAT('Hello, ',s,'!');
    查询正常,0 行受影响(0.00 秒)
    

    在您的情况下,您可以删除BEGIN ... END复合语句块并避免更改分隔符。

于 2013-07-13T08:02:39.493 回答