我有一个表,其列类型为timestamp,默认值为current_timestamp,每次更新时更新为current_timestamp.

我想删除本专栏的"更新"功能.如何编写alter语句?

我try 了以下方法:

ALTER TABLE mytable alter column time  set DEFAULT now();

但这不管用.

推荐答案

皮特几乎是对的,但对"改变"使用了错误的语法:

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

请注意,必须重复列名.此外,请确保使用反勾号而不是单引号来转义列名time,这会防止它被解释为mysql列类型的time.

通过指定当前时间戳的默认值,MySQL将不再自动更新列.从MySQL Manual人中:

使用默认的CURRENT_TIMESTAMP子句和no ON UPDATE子句,列的默认值具有当前时间戳,但不会自动更新.

Mysql相关问答推荐

在 MySQL 中转换 JSON 数组值

按长度过滤 varbinary 字段

如何查看 rdsadmin 在 mysql 实例上的权限?

DECIMAL(m, n) 在 64 位系统中如何表示?

选择在同一天售出不同活动门票的收银员

使用 MySQL 在树中查找“ Leaf”

为什么 ORDER BY 'id' 'desc' 不返回语法错误?

pip install mysqlclient 返回“致命错误 C1083:无法打开文件:'mysql.h':没有这样的文件或目录

无法加载身份验证插件“caching_sha2_password”

ProgrammingError: 在一个线程中创建的 SQLite 对象只能在同一个线程中使用

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?

脚本超时,如果要完成导入,请重新提交相同的文件,导入将恢复

拒绝访问;您需要(至少一个)超级权限才能执行此操作

Sequelize Query 查找日期范围内的所有记录

在 MySQL 中存储 UUID v4

MySql:Tinyint (2) 与 tinyint(1) - 有什么区别?

Laravel 数据库模式,可以为空的外部

mysqld:无法将目录更改为数据.服务器没有启动

WooCommerce:在数据库中查找产品

从 MySQL JSON 数据类型中提取不带引号的值