问题
How can I call a stored procedure from command line?
I have a 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
I tried this:
mysql> CALL insertEvent(2012.01.01 12:12:12);
Result:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.01 12:12:12)' at line 1
And this:
mysql> CALL insertEvent
-> 2012.01.01 12:12:12;
Result:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2012.01.01 12:12:12' at line 2
回答1:
With quotes around the date:
mysql> CALL insertEvent('2012.01.01 12:12:12');
来源:https://stackoverflow.com/questions/16157349/how-to-call-a-mysql-stored-procedure-with-arguments-from-command-line