我已经查看了关于phpmyadmin触发器的其他答案。有人说要删除Canine
和BEGIN
,所以我做了。许多人说要使用分隔符,我也这样做了。它仍然没有工作。
代码:
END
我还尝试在表名和列名上使用反引号。它总是说同样的事情,我在第2行的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 ;
附近有语法错误。有什么线索吗?
答案 0 :(得分: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;