3

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

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
4

1 回答 1

0

这没有行计数检查,但基本的触发器语法将是这样的。请注意,只有超级用户角色才能创建触发器。此外,您必须先更改分隔符,这通常是 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 ;
于 2013-05-21T09:47:04.540 回答