phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

phpmyadmin erro de sintaxe do gatilho mysql


Há muitos erros para corrigir.
  1. Sem fim de declarações.
  2. Nenhuma ordem de sintaxe seguida.
  3. A declaração de variáveis ​​não está correta.
  4. A seleção de variáveis ​​de uma coluna não está correta.
  5. Relógios baseados em chaves não são compatíveis.
  6. A tabela inserted contém apenas uma linha? Caso contrário, você precisa de um where cláusula ou limit .
  7. etc.

É melhor você trabalhar mais para aprender.
Consulte Sintaxe e exemplos do gatilho para melhor compreensão.

Altere seu código da seguinte maneira e ele pode funcionará se tudo estiver bem em seus objetos de banco de dados.
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;