【发布时间】:2015-05-31 14:39:08
【问题描述】:
我使用的是 MYSQL 5.5 版 我正在尝试插入以下过程:
CREATE PROCEDURE `myTestProceed3ure` ( IN _id INT )
IF( SELECT COUNT( * ) FROM `tbl_search_counter` WHERE user_id = u_userid ) >0
THEN
(SELECT COUNT( * ) FROM `tbl_search_counter` WHERE user_id = u_userid);
ELSE
(INSERT INTO `tbl_search_counter` (`user_id` ,`time_searched`) VALUES ('165', '7'));
END IF
但无论出于何种原因,我都会收到以下错误消息
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 'INSERT INTO
tbl_search_counter(user_id,time_searched) 附近 第 6 行的 VALUE'
我真的不明白,因为当我执行以下请求时,我没有遇到问题
CREATE PROCEDURE `myTestProceed2ure` ( IN `_id` INT )
INSERT INTO `tbl_search_counter` (`user_id`, `time_searched`) VALUES ('15', '7')
或以下
CREATE PROCEDURE `myTestProceed3ure` ( IN _id INT )
IF( SELECT COUNT( * ) FROM `tbl_search_counter` WHERE user_id = u_userid ) >0
THEN
(SELECT COUNT( * ) FROM `tbl_search_counter` WHERE user_id = u_userid);
ELSE
(SELECT COUNT( * ) FROM `tbl_search_counter` WHERE user_id = u_userid);
END IF
如果有人知道我做错了什么,请告诉我...
谢谢
【问题讨论】:
-
看看你在proc中使用的变量。错了
-
请说明您希望存储过程做什么。
-
我认为你在存储过程中错过了 BEGAIN 一个 END ......所以检查一下语法:)
-
我发现,我不应该把括号放在 INSERT 函数之前,如果我这样做它可以工作
标签: mysql stored-procedures insert