phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

phpmyadmin mysql-Trigger-Syntaxfehler

Es gibt viele Fehler zu korrigieren.

  1. Kein Ende der Anweisungen.
  2. Keine Reihenfolge der Syntax eingehalten.
  3. Deklaration von Variablen ist nicht korrekt.
  4. Auswahl in zwei Variablen aus einer Spalte ist nicht korrekt.
  5. Klammernbasierte Uhren werden nicht unterstützt.
  6. Wird Tabelle inserted nur eine Zeile enthalten? Andernfalls benötigen Sie ein where -Klausel oder limit .
  7. usw.

Sie arbeiten besser mehr, um zu lernen.
Bitte beachten Sie Trigger-Syntax und Beispiele zum besseren Verständnis.

Ändern Sie Ihren Code wie folgt und es kann funktionieren, wenn mit Ihren Datenbankobjekten alles in Ordnung ist.

drop trigger if exists after_jeu_insert;

delimiter //

CREATE TRIGGER after_jeu_insert after insert ON jeu for each row
BEGIN
    DECLARE _game_id int;
    DECLARE _old_turn int;
    DECLARE _new_turn int;

    -- following line may not require limit clause
    -- if used proper where condition.
    SELECT idpartie into _game_id FROM INSERTED limit 1; 

    SELECT tour into _old_turn FROM partie WHERE idpartie = _game_id;

    IF _old_turn IS NULL then
        SET _new_turn = 1;
    ELSIF _old_turn = 1 then
        SET _new_turn = 2;
    ELSE
        SET _new_turn = 1;
    END IF;

    UPDATE partie 
       SET tour = _new_turn
         , derniercoup = NOW()
     WHERE idpartie = _game_id;
END;
//

delimiter;