it-swarm.com.de

Wie rufe ich eine gespeicherte mysql-Prozedur mit Argumenten über die Befehlszeile auf?

Wie kann ich eine gespeicherte Prozedur über die Befehlszeile aufrufen?

Ich habe eine Prozedur:

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. Ich habe es versucht:mysql> CALL insertEvent(2012.01.01 12:12:12);

    Ergebnis:

    FEHLER 1064 (42000): Ihre SQL-Syntax ist fehlerhaft. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax, die in der Nähe von '.01 12:12:12)' in Zeile 1 verwendet werden kann

  2. nd das:mysql> CALL insertEvent

    -> 2012.01.01 12:12:12;

    Ergebnis:

    FEHLER 1064 (42000): Ihre SQL-Syntax ist fehlerhaft. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax, die in der Nähe von '2012.01.01 12:12:12' in Zeile 2 verwendet werden kann

35
Gábor Dani

Mit Anführungszeichen um das Datum:

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