gpt4 book ai didi

mysql - 为什么 'timestamp not null' 导致默认设置为 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' ?

转载 作者:可可西里 更新时间:2023-11-01 09:02:15 29 4
gpt4 key购买 nike

当我创建一个新表时

create table test(rId int auto_increment, createtimestamp timestamp not null, PRIMARY KEY (rId));

它创建一个带有默认模式的表createtimestamp 作为 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

预期行为没有默认设置。但它被设置为默认值:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。为什么会这样?

我可以在创建后使用 ALTER TABLE test CHANGE COLUMN createtimestamp createtimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ; 更改它,但不能将其更改为 ALTER TABLE test CHANGE COLUMN createtimestamp createtimestamp TIMESTAMP NOT空;

看起来必须指定默认值,但这正是我不想要的。在创建表之后并且不需要任何更改的情况下,如何实现未设置默认值且模式不为空的行为?

MySql 版本:5.5.49

最佳答案

最初的答案是正确的,但如果在定义中使用默认值或 NULL 是 Not Acceptable ,则可能会考虑改用 datetime,或者升级到允许行为更改的 MySQL 5.6 http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp .

关于mysql - 为什么 'timestamp not null' 导致默认设置为 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945385/

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