2013-04-22 21 views
30

Come posso chiamare una stored procedure dalla riga di comando?Come chiamare una procedura memorizzata mysql, con argomenti, dalla riga di comando?

Ho un procedimento:

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. ho provato questo:mysql> CALL insertEvent(2012.01.01 12:12:12);

    Risultato:

    ERROR 1064 (42000): Hai un errore nella vostra Sintassi SQL; controllare il manuale che corrisponde alla versione del server MySQL per il diritto sintassi da utilizzare in prossimità di '.01 00:12:12)' at line 1

  2. E questo:mysql> CALL insertEvent

    -> 2012.01.01 12:12:12;

    Risultato:

    eRROR 1064 (42000): Hai un errore nella sintassi SQL; controllare il manuale che corrisponde alla versione del server MySQL per la sintassi diritto di utilizzare vicino a '2012/01/01 12:12:12' at line 2

risposta

52

Con virgolette intorno alla data:

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