Подтвердить что ты не робот

Как вызвать хранимую процедуру 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
  • Я пробовал это: mysql> CALL insertEvent(2012.01.01 12:12:12);

    Результат:

    ОШИБКА 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверить руководство, соответствующее вашей версии сервера MySQL для правильного синтаксис для использования около '.01 12:12:12)' в строке 1

  • И это: mysql> CALL insertEvent

    -> 2012.01.01 12:12:12;

    Результат:

    ОШИБКА 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "2012.01.01 12:12:12" в строке 2

4b9b3361

Ответ 1

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

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