MySQL时间戳自动更新

发布于 2024-11-26 17:46:38 字数 462 浏览 0 评论 0原文

我有一个包含几个时间戳字段的表,但我遇到了一些问题,其中一些字段默认为 NULL。

在我的 users 表中,我有这些时间戳表:

(field),(NULL),(default val)

deleted_on YES NULL
last_change_attemp YES NULL
newpass_time YES NULL
last_login YES NULL
created NO 0000-00-00 00:00:00
updates YES NULL

当我在 phpMyAdmin 中编辑一行时,我正在编辑的行已经为所有 NULL 字段(第一个字段除外)选中了 NULL 复选框:*deleted_on *。如果我手动选中该复选框,它允许我将该字段保留为 NULL。

当我通过查询更新另一个字段时,它会自动在第一个字段上执行 current_timestamp 。这是预期的吗?

I have a table which contains a couple timestamp fields and but I'm having some problems having some of the fields defaulting to NULL.

In my users table I have these timestamp tables:

(field),(NULL),(default val)

deleted_on YES NULL
last_change_attemp YES NULL
newpass_time YES NULL
last_login YES NULL
created NO 0000-00-00 00:00:00
updates YES NULL

When I go edit a row in phpMyAdmin, the row I'm editing already has the NULL checkbox checked for all NULL fields, except the first field: *deleted_on*. If I manually check the checkbox, it allows me to maintain that field as NULL.

When I update another field via a query, it automatically does a current_timestamp on that first field. Is this expected?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时常饿 2024-12-03 17:46:38

我再次阅读了文档并注意到了这段文字

为 TIMESTAMP 列指定自动默认值或更新其他
比第一个,你必须抑制自动初始化和
通过显式更新第一个 TIMESTAMP 列的行为
为其分配一个常量 DEFAULT 值(例如 DEFAULT 0 或
默认“2003-01-01 00:00:00”)。然后,对于另一个 TIMESTAMP 列,
规则与第一个 TIMESTAMP 列相同,除了
如果省略 DEFAULT 和 ON UPDATE 子句,则不会自动
发生初始化或更新。

http://dev.mysql.com/doc/refman/5.0/en /timestamp.html

所以暂时我将字段默认为 0000-00-00 00:00:00 以防止自动更新。

I've read through the docs again and noticed this piece of text

To specify automatic default or updating for a TIMESTAMP column other
than the first one, you must suppress the automatic initialization and
update behaviors for the first TIMESTAMP column by explicitly
assigning it a constant DEFAULT value (for example, DEFAULT 0 or
DEFAULT '2003-01-01 00:00:00'). Then, for the other TIMESTAMP column,
the rules are the same as for the first TIMESTAMP column, except that
if you omit both of the DEFAULT and ON UPDATE clauses, no automatic
initialization or updating occurs.

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

So for the time being I have the fields default to 0000-00-00 00:00:00 to prevent auto updates.

我一向站在原地 2024-12-03 17:46:38

phpMyAdmin 对时间戳和 null 做了一些奇怪的事情,特别是如果该列被标记为 CURRENT_TIMESTAMP

我不知道为什么。

phpMyAdmin does some weird things with timestamps and null, especially if the column is marked as CURRENT_TIMESTAMP

I don't know why.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文