我的表格中有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
答案 0 :(得分:0)
这可能与date
作为关键字有关。尝试将其更改为some_date
。 CURRENT_TIMESTAMP
有意吗?
答案 1 :(得分:0)
当您将默认值设置为CURRENT_TIMESTAMP时,sql将仅在创建新记录时插入当前时间戳,并且除非您自己更新,否则永远不会更新它。刷新不会更新时间戳
答案 2 :(得分:0)
如果您使用MariaDB,则此文档页面https://mariadb.com/kb/en/library/timestamp/可能会为您提供一些令人惊讶的信息:
“ timestamp字段通常用于定义添加或更新行的时间,默认情况下,在插入或更新记录时会自动将其分配为当前日期时间。属性仅适用于记录中的第一个TIMESTAMP;后续的TIMESTAMP列将不会更改。“
希望这一点对下一个使用此出色功能的开发人员有所帮助...