MySQL触发器更新最后插入的行

时间:2013-07-04 10:37:52

标签: mysql triggers row

我有这个表(SystemEvents):

id       ipv4        ipnumber
 1       1.2.3.4      
 2       3.4.5.6

我需要一个AFTER INSERT触发器来更新该表的最后一行。

如下所示

UPDATE SystemEvents 
SET ipnumber=INET_ATON(NEW.ipv4)
WHERE id=NEW.id

这是对的吗?

虽然语法似乎没问题,但我无法使其正常工作!

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:3)

使用BEFORE INSERT作品

delimiter |
CREATE TRIGGER `some_name` BEFORE INSERT ON SystemEvents
FOR EACH ROW BEGIN
   SET NEW.ipnumber = INET_ATON(NEW.ipv4);
END
| 
delimiter ;

SQLFiddle demo

答案 1 :(得分:0)

试试这个:

UPDATE SystemEvents 
SET ipnumber=INET_ATON(NEW.ipv4)
WHERE id=(SELECT MAX(id) FROM SystemEvents WHERE id < NEW.id);