无法在phpmyadmin上创建触发器
问题描述:
我已经浏览了关于phpmyadmin上触发器的其他答案。一个说要删除BEGIN
和END
,所以我做了。许多人说使用分隔符,我也这样做。它仍然无法工作。无法在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
附近出现语法错误。任何线索?
答
它看起来像我是基于与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;
设置nocount是sql server是否正确标记了? –
@P.Salmon所以我不应该在这种情况下使用'set nocount on'?我没有使用SQL服务器。我只是把它放在那里,因为我读过那个应该总是在触发器上使用它。 – GeleiaDeMocoto