56,687
社区成员
发帖
与我相关
我的任务
分享
DELIMITER $$
USE `xiehou_3`$$
DROP PROCEDURE IF EXISTS `proc`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc`(IN iuid INT,IN icnt INT)
BEGIN
DECLARE idate DATE;
SELECT `date` INTO idate FROM tb_act20140602_user_value WHERE uid=iuid;
IF idate IS NULL THEN
INSERT INTO tb_act20140602_user_value VALUES(iuid,icnt,NOW(),icnt,icnt,NOW());
ELSEIF idate=CONVERT(NOW(),DATE) THEN
UPDATE tb_act20140602_user_value SET daycnt=daycnt+icnt,maxcnt=maxcnt+icnt,`count`=`count`+icnt,lastModifyTime=NOW() WHERE uid=iuid;
ELSE
UPDATE tb_act20140602_user_value SET daycnt=icnt,maxcnt=maxcnt+icnt,`count`=`count`+icnt,lastModifyTime=NOW(),`date`=NOW() WHERE uid=iuid;
END IF;
END$$
DELIMITER;
以上语句执行后
(0 row(s) affected)
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:047
Total Time : 00:00:00:047
(0 row(s) affected)
Execution Time : 00:00:00:032
Transfer Time : 00:00:01:201
Total Time : 00:00:01:233
(0 row(s) affected)
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:015
Total Time : 00:00:00:015
错误码: 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 'DELIMITER' at line 1
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
存储过程proc创建成功
调用结果
(1 row(s) affected)
Execution Time : 00:00:00:093
Transfer Time : 00:00:00:000
Total Time : 00:00:00:093
我就想问为毛有一行报错
顺便问下如何返回受影响的行数
USE `xiehou_3`;
DROP PROCEDURE IF EXISTS `proc`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc`(IN iuid INT,IN icnt INT)
BEGIN
DECLARE idate DATE;
SELECT `date` INTO idate FROM tb_act20140602_user_value WHERE uid=iuid;
IF idate IS NULL THEN
INSERT INTO tb_act20140602_user_value VALUES(iuid,icnt,NOW(),icnt,icnt,NOW());
ELSEIF idate=CONVERT(NOW(),DATE) THEN
UPDATE tb_act20140602_user_value SET daycnt=daycnt+icnt,maxcnt=maxcnt+icnt,`count`=`count`+icnt,lastModifyTime=NOW() WHERE uid=iuid;
ELSE
UPDATE tb_act20140602_user_value SET daycnt=icnt,maxcnt=maxcnt+icnt,`count`=`count`+icnt,lastModifyTime=NOW(),`date`=NOW() WHERE uid=iuid;
END IF;
END
$$