对于使用phpMyAdmin更改的记录,未更新时间戳

时间:2014-11-19 06:05:43

标签: mysql phpmyadmin

以下是一个例子:

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

2 个答案:

答案 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没有更新它认为没有改变的列的显示。