我的存储过程代码是:
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
答案 0 :(得分:0)
如果使用mysql客户端程序定义包含分号字符的存储程序,则会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此您必须临时重新定义分隔符,以使mysql将整个存储的程序定义传递给服务器。
phpMyAdmin也是如此。
要重新定义mysql分隔符,请使用
delimiter
命令。
并非所有版本的phpMyAdmin都能识别delimiter
命令;相反,可以使用SQL输入框下方的Delimiter
输入框:请参阅How do I write an SP in phpMyAdmin (MySQL)?
以下是获取参数,使用SQL函数执行操作并返回结果的函数示例。在这种情况下,不必使用
delimiter
,因为函数定义不包含内部;
语句分隔符:mysql>CREATE FUNCTION hello (s CHAR(20))
mysql>RETURNS CHAR(50) DETERMINISTIC
->RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)
在您的情况下,您可以删除BEGIN ... END
复合语句块,并避免更改分隔符。