2017-09-04 15 views
0

私はすでにphpmyadminのトリガーについて他の回答を見てきました。 1人はBEGINENDを削除すると言いました。多くの人は私もやったデリミタを使うと言っていました。それでも動作しません。phpmyadminでトリガーを作成できません

コード:

DELIMITER // 
CREATE TRIGGER trig_EnderecoUpdated 
ON tbdiref3_endereco AFTER UPDATE 
FOR EACH ROW 
    SET NOCOUNT ON 
    IF UPDATE(MORADOR_ID) 
     INSERT INTO 
      tbdiref3_historico(END_ID, DATA, USUARIO_ID, MORADOR_ANTIGO) 
      SELECT 
      d.ID_END, GETDATE(), USER_NAME(), d.MORADOR_ID 
      FROM 
      Deleted d 
// 
DELIMITER ; 

また、私は、テーブル名とカラム名にバッククォートを使用してみました。それは常に同じことを言います、私はライン2のON tbdiref3_endereco AFTER UPDATE FOR EACH ROW SET NOCOUNT ON IF UPDATEの近くに構文エラーがあります。手がかりはありますか?

+1

nocountはSQL Serverが正しくタグ付けされていますか? –

+0

@ P.Salmonだから、この場合は 'set nocount on'を使うべきではありませんか?私はSQLサーバーを使用していません。私はそれをトリガーでいつも使うべきだと読んだので、そこに入れました。 – GeleiaDeMocoto

答えて

0

私はMySQLと互換性のないSQL Serverのサンプルを使っていたようです。次のコードは、PHPMyAdminに受け入れられました。

CREATE TRIGGER trig_EnderecoUpdated AFTER UPDATE ON tbdiref3_endereco FOR EACH ROW 
    IF NEW.MORADOR_ID != OLD.MORADOR_ID THEN 
     INSERT INTO tbdiref3_historico(END_ID, DATA, USUARIO_ID, MORADOR_ANTIGO) VALUES (OLD.ID_END, NOW(), CURRENT_USER(), OLD.MORADOR_ID); 
    END IF; 
関連する問題