这是一个例子:
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 更改记录时,时间戳不会更新。错误?
有没有办法获得上次更改的正确时间戳?
(phpMyAdmin 4.1.0 和 MySQL 5.1.63
)
最佳答案
即使您只编辑了一个单元格,phpmyadmin 很可能会更新所有单元格。作为其他单元格的值,他使用旧值。当手动设置 modified
时(phpmyadmin 将其设置为旧值),ON UPDATE
将不会处理。
要在此单元格上强制自动更新并覆盖任何手动(或 phpmyadmin-automatical)输入,请添加如下触发器:
CREATE TRIGGER my_trigger_name BEFORE UPDATE ON `abc`
FOR EACH ROW SET NEW.modified = NOW();
关于mysql - 使用 phpMyAdmin 更改的记录未更新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010106/