如何从命令行调用带有参数的mysql存储过程?

时间:2013-04-22 21:49:42

标签: mysql command-line call procedure

如何从命令行调用存储过程?

我有一个程序:

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertEvent`(IN `dateTimeIN` DATETIME)
    NO SQL
BEGIN
    SET @eventIDOut = NULL;

    IF  EXISTS(SELECT * FROM `events` WHERE `eventDate` = dateTimeIN) THEN
        SELECT `eID` INTO @eventIDOut FROM `events` WHERE `eventDate` = dateTimeIN LIMIT 1;
        ELSE
        INSERT INTO `events` (`eventDate`) VALUES(dateTimeIN);
        SET @eventIDOut = last_insert_id();
    END IF;

    SELECT CONCAT(@eventIDOut);
END
  1. 我试过了: mysql> CALL insertEvent(2012.01.01 12:12:12);

    结果:

    错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在第1行“.01 12:12:12”附近使用的语法

  2. 而且: mysql> CALL insertEvent

    -> 2012.01.01 12:12:12;

    结果:

    错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行的“2012.01.01 12:12:12”附近使用正确的语法

1 个答案:

答案 0 :(得分:63)

引用日期:

mysql> CALL insertEvent('2012.01.01 12:12:12');