sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Error de sintaxis de activación de phpmyadmin mysql

Hay muchos errores que corregir.

  1. Sin fin de declaraciones.
  2. No se siguió ningún orden de sintaxis.
  3. La declaración de variables no es correcta.
  4. La selección de variables de una columna no es correcta.
  5. Los relojes basados ​​en llaves no son compatibles.
  6. ¿La tabla inserted contienen solo una fila? De lo contrario, necesita un where cláusula o limit .
  7. etc.

Será mejor que trabaje más para aprender.
Consulte Sintaxis y ejemplos de disparadores para un mejor entendimiento.

Cambie su código de la siguiente manera y puede funciona si todo está bien en los objetos de su base de datos.

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;