コマンドラインからストアドプロシージャを呼び出すにはどうすればよいですか?
手順があります:
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 構文にエラーがあります。1 行目の「.01 12:12:12)」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
この:
mysql> CALL insertEvent
-> 2012.01.01 12:12:12;
結果:
エラー 1064 (42000): SQL 構文にエラーがあります。2 行目の「2012.01.01 12:12:12」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。