mysql - 使用 phpMyAdmin 更改的记录未更新时间戳

标签 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 更改记录时,时间戳不会更新。错误? 有没有办法获得上次更改的正确时间戳? (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/

相关文章:

java - 访问另一个类的变量以在 SQL 语句 JAVA 中使用

mysql - 使用从两个查询返回的数据填充临时表

mysql - 如何使用 django 和 phpmyadmin 配置 mysql

sql - 通过phpMyAdmin在MySQL中创建id字段时是否必须指定整数长度?

mysql - 在 PHPMyAdmin 中合并两个表

php - 缺少 mysqli 扩展。请检查您的 PHP 配置,Windows 7

php - php 中的简单添加?

MySQL 和 HBase 优化的数据存储(1 TB)

mysql - 传入用户指定的参数来查询数据库并返回数据

mysql - 无法在phpmyadmin中输入阿拉伯语数据