mySql :
您的SQL
查询已成功执行
0行受过程
中的最后一个语句的影响CREATE DEFINER=`root`@`localhost` PROCEDURE `update_adm`(OUT `sp_out` INT(11), IN `sp_email` VARCHAR(50) CHARSET utf8)
NO SQL
BEGIN
UPDATE `admin` SET `last_try`=curtime() WHERE `email`=sp_email;
SET sp_out=ROW_COUNT();
END
为什么0行受到过程中最后一个语句的影响?!
编辑:
当我在存储过程中使用navid@yahoo.com这样的正确值替换sp_email
时,它完美无缺!
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_adm`()
NO SQL
BEGIN
UPDATE `admin` SET `last_try`=curtime() WHERE `email`='navid@yahoo.com';
END
答案 0 :(得分:0)
从MySQL命令行,输出符合预期。
mysql> delimiter $$
mysql> CREATE DEFINER=`root`@`localhost PROCEDURE update_adm( ...
-> END$$
Query OK, 0 rows affected (0.16 sec)
mysql> delimiter ;
mysql> insert into admin values (null,'foo');
Query OK, 1 row affected (0.00 sec)
mysql> call update_adm(@cnt,'foo');
Query OK, 1 row affected (0.00 sec)
mysql> call update_adm(@cnt,'bar');
Query OK, 0 rows affected (0.00 sec)
当我使用存在的电子邮件调用该过程时,我收到一条消息,显示1行受到影响。当我使用确实存在的电子邮件调用该过程时,它会返回一条消息,显示受影响的0行。
我相信您看到的消息来自客户端界面。您使用什么客户来调用该程序?