【问题标题】:Update TIME mysql stored procedure更新TIME mysql存储过程
【发布时间】:2016-10-11 13:33:24
【问题描述】:

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

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    从 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 行受影响。

    我相信您看到的消息来自客户端界面。你用什么客户端来调用这个过程?

    【讨论】:

    • 表格字段'last_try'没有改变,当我在phpmyadmin->sql中使用上述查询时,查询工作完美,'last_try'更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多