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

Errore di sintassi del trigger di phpmyadmin mysql

Ci sono molti errori da correggere.

  1. Senza fine delle dichiarazioni.
  2. Nessun ordine di sintassi seguito.
  3. La dichiarazione delle variabili non è corretta.
  4. La selezione nelle variabili da una colonna non è corretta.
  5. Gli orologi basati su brace non sono supportati.
  6. La tabella inserted contengono solo una riga? Altrimenti hai bisogno di un where clausola o limit .
  7. ecc.

Faresti meglio a lavorare di più per imparare.
Fai riferimento a Sintassi ed esempi di trigger per una migliore comprensione.

Modifica il codice come segue e potrebbe funziona se tutto va bene sugli oggetti del database.

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;