SQL - 日期列每次更新表时自动更改

时间:2012-10-03 14:50:34

标签: sql

我的表格中有date列。当我对行执行update查询时,每次date刷新到当前日期。我已将日期的默认值设置为CURRENT_TIMESTAMP,但为什么每次都会发生这种情况?

更新

我的创建查询:

CREATE TABLE  `ACCOUNTS` (
  `id` bigint(7) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `status` varchar(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1234567 DEFAULT CHARSET=latin1

3 个答案:

答案 0 :(得分:0)

这可能与date作为关键字有关。尝试将其更改为some_dateCURRENT_TIMESTAMP有意吗?

答案 1 :(得分:0)

当您将默认值设置为CURRENT_TIMESTAMP时,sql将仅在创建新记录时插入当前时间戳,并且除非您自己更新,否则永远不会更新它。刷新不会更新时间戳

答案 2 :(得分:0)

如果您使用MariaDB,则此文档页面https://mariadb.com/kb/en/library/timestamp/可能会为您提供一些令人惊讶的信息:

  

“ timestamp字段通常用于定义添加或更新行的时间,默认情况下,在插入或更新记录时会自动将其分配为当前日期时间。属性仅适用于记录中的第一个TIMESTAMP;后续的TIMESTAMP列将不会更改。“

希望这一点对下一个使用此出色功能的开发人员有所帮助...