gpt4 book ai didi

php - MySQL CURRENT_TIMESTAMP 字段在每次更新时更新

转载 作者:行者123 更新时间:2023-11-29 01:07:23 25 4
gpt4 key购买 nike

解释这个问题的最好方法是举个例子。

我有一张 table :

CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` varchar(255) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

结果:

   id  |  data  |       created       |       updated (NULL)| (NULL) |       (NULL)        |       (NULL)

Then I insert some data:

INSERT INTO example (
`data`
) VALUES (
'abc123'
)

结果:

  id  |  data  |       created       |       updated   1  | abc123 | 2013-01-16 13:12:16 |       (NULL)

And then I update

UPDATE example SET 
`data` = 'def456',
`updated` = NOW()
WHERE id = 1

结果:

  id  |  data  |       created       |       updated   1  | def456 | 2013-01-16 13:16:24 | 2013-01-16 13:14:26

问题:注意 created 字段如何更新,并且正确保存更新字段的时间略有不同。我已经在同一个数据库上设置了这个示例表和其他类似的表,但没有出现这个问题,所以我完全被它弄糊涂了。

最佳答案

已更新 需要:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

因此您的CREATE TABLE 将是:

CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` varchar(255) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

这意味着当你以后执行你的UPDATE时,你不需要传入一个更新变量,因为MySQL会自动为你更新它:)

关于php - MySQL CURRENT_TIMESTAMP 字段在每次更新时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com