Как вызвать хранимую процедуру mysql с аргументами из командной строки?

как я могу вызвать хранимую процедуру из командной строки?

у меня есть процедура:

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);

    результат:

    ERROR 1064( 42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксис для использования рядом '.01 12:12:12)' в строке 1

  2. и так: mysql> CALL insertEvent

    -> 2012.01.01 12:12:12;

    результат:

    ошибка 1064 (42000): у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом '2012.01.01 12:12:12' в строке 2

1 ответов


с кавычками вокруг даты:

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