以下是一个例子:
CREATE TABLE `abc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(1) NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM
INSERT INTO abc VALUES(1, 3, now());
INSERT INTO abc VALUES(2, 5, now());
我希望看到“已修改”列中记录的最后一次更改的时间戳。
当我使用更改记录时
UPDATE abc set number = 6 WHERE id = 1;
一切正常。
但是当使用phpMyAdmin GUI更改记录时,时间戳不会更新。一个bug?
有没有办法获得最后一次更改的正确时间戳?
(phpMyAdmin 4.1.0 and MySQL 5.1.63
)
答案 0 :(得分:0)
即使您只编辑了一个单元格,phpmyadmin也很可能会更新所有单元格。作为其他单元格的值,他使用旧值。当手动设置modified
(phpmyadmin将其设置为旧值)时,ON UPDATE
将无法处理。
要强制对此单元格进行自动更新并覆盖任何手动(或phpmyadmin-automatical)输入,请添加如下触发器:
CREATE TRIGGER my_trigger_name BEFORE UPDATE ON `abc`
FOR EACH ROW SET NEW.modified = NOW();
答案 1 :(得分:0)
这个也抓住了我...更新发生在数据库中,但是phpMyAdmin没有更新它认为没有改变的列的显示。