如果我在类型表中具有一列TIMESTAMP
并且具有默认值:CURRENT_TIMESTAMP如果我更新同一行中 任何
其他列的值,此列是否会更新为当前时间戳?
似乎没有,但是我不确定这是否应该发生。
我不明白这是什么意思(来自MySQL文档):
如果该列是自动更新的,则当该行中任何其他列的值从其当前值更改时,它将自动更新为当前时间戳。如果所有其他列均设置为其当前值,则该列保持不变。为防止当其他列更改时该列更新,请将其显式设置为当前值。即使在其他列不变的情况下也要更新该列,请将其显式设置为应具有的值]
2
发出命令 SHOW CREATE TABLE whatever
然后看表定义。
它可能有这样一条线
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
在里面。 DEFAULT CURRENT_TIMESTAMP
表示INSERT
没有明确的时间戳设置的任何人都会使用当前时间。同样,这ON UPDATE CURRENT_TIMESTAMP
意味着没有显式时间戳的任何更新都会导致当前时间戳值的更新。
您可以在创建表时控制此默认行为。
或者,如果第一时间未正确创建时间戳列,则可以对其进行更改。
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
这将导致对表的INSERT和UPDATE操作都自动更新您的时间戳列。如果要更新whatevertable
而不更改时间戳,即,
当其他列更改时,防止更新列
那么您需要发布此类更新。
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
并且,这TIMESTAMP
仅适用于列,不适用于DATETIME
或DATE
列。因为列是TIMESTAMP
s,所以考虑了时区:在正确配置的服务器计算机上,这些值始终存储在UTC中,并在检索时转换为本地时间。
系统支持自动写入创建和更新的时间戳字段(默认关闭),有两种方式配置支持。 第一种方式是全局开启,在数据库配置文件中进行设置: // 开启自动写入时间戳字段 'auto_timestamp' => true, 第二种是在需要的模型类里面单独开启: <?php namespace app\index\model; use think\Model; class User extends Model
我正在使用FluentD(v.12最后一个稳定版本)向Kafka发送消息。但是FluentD正在使用一个旧的KafkaProducer,所以记录时间戳总是设置为-1。因此,我必须使用WallclockTimestampExtrator将记录的时间戳设置为消息到达kafka时的时间点。 是否有特定于Kafka Streams的解决方案? 我真的感兴趣的时间戳,是由Fluentd在消息中发送的: “时
问题内容: 我有一列称为“ s_timestamp”。 如何返回时间戳中具有当天的所有记录? 例如, 我想要以下输出: 让我知道是否不清楚。 问题答案: 只是使用。例如 日期() CURDATE()
问题内容: mysql有什么方法可以在创建时自动将时间戳存储在记录行中。我试图将timestamp(数据类型)与current_timestamp用作默认值,但后来意识到,每当记录更新时,它将更新。我只需要一些可以存储创建时间戳记的东西。 谢谢 问题答案: 设置DEFAULT约束以使用CURRENT_TIMESTAMP: 对于现有表,请使用ALTER TABLE语句: 除非您为date_colum
问题内容: 如何在到期时间戳后自动执行MySQL更新或插入? 因此,可以说时间戳是,我希望在经过该日期和时间后自动更新MySQL DB,因此今天之后。 我想更新我的商品,但是我的网站没有打开浏览器,所以我想我需要某种服务器触发器吗?我怎么做?非常感谢 我有以下查询每1秒执行一次,它不起作用: 问题答案: 使用可以用于 MySQL事件(恕我直言最好的候选人) cron作业或Windows Task
我正在使用FluentD(V.12最后一个稳定版本)向Kafka发送消息。但是FluentD使用的是旧的KafkaProducer,因此记录时间戳始终设置为-1。因此,我必须使用WallclockTimestampExtractor将记录的时间戳设置为消息到达Kafka时的时间点。 我真正感兴趣的时间戳是由fluentd在消息中发送的: “时间戳”:“1507885936”,“主机”:“V.X.Y