2013-04-22 3 views
30

Как я могу вызвать хранимую процедуру из командной строки?Как вызвать хранимую процедуру 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;

    Результат:

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

ответ

52

С кавычками даты:

mysql> CALL insertEvent('2012.01.01 12:12:12'); 
Смежные вопросы