什么是MySQL相当于SQL Server的UPDATE()触发器功能?

时间:2013-05-17 10:06:58

标签: mysql sql-server triggers

我需要帮助将此MS SQL更新触发器转换为MySQL。我的问题是转换MS SQL UPDATE() function,它标识了已更新的特定列:

ALTER TRIGGER [dbo].[tran_upd_action] ON [dbo].[tran_action]
FOR UPDATE AS

BEGIN
   IF @@ROWCOUNT>0
     BEGIN
        IF update(column1) OR update(column2)
          BEGIN
             INSERT into tran_indexerqueue 
                (trankey, trkey2, tranname) SELECT tran_actionid, 0, 'tranaction' from inserted
         END
    END
 END

1 个答案:

答案 0 :(得分:0)

这没有rowcount检查,但基本的触发器语法将是这样的。请注意,只有超级用户角色才能创建触发器。此外,您必须首先更改分隔符,这通常是MSSQL DBA的一个重要问题。

DELIMITER $$

CREATE TRIGGER `tran_upd_action` AFTER UPDATE ON `tran_action` FOR EACH ROW BEGIN
INSERT INTO tran_indexerqueue 
            (trankey, trkey2, tranname)
VALUES(OLD.trankey, OLD.trkey2, OLD.tranname);

END $$

DELIMITER ;