我现有的表格:

+-----------------+---------------+------+-----+---------+-------------------+
| Field           | Type          | Null | Key | Default | Extra             |
+-----------------+---------------+------+-----+---------+-------------------+
| creation_date   | timestamp     | YES  |     | NULL                        |

我想把桌子改成这样:

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

但我犯了一个错误:

第7行错误1138(22004):无效使用空值

问题看起来像是将可为NULL的值从YES改为NOT NULL.我需要删除该列,然后添加吗?

推荐答案

看起来有几行的值为空.将该列中的所有空值更新为默认日期,然后try 进行更改.

试试这个

--update null value rows
UPDATE enterprise
SET creation_date = CURRENT_TIMESTAMP
WHERE creation_date IS NULL;


ALTER TABLE enterprise 
MODIFY creation_date TIMESTAMP NOT NULL 
DEFAULT CURRENT_TIMESTAMP;

Mysql相关问答推荐

如何在循环查询中删除默认架构?

MySQL在带有特定属性值上的对象的数组的杨森对象中搜索

我需要为用户提供MySQL视图和存储的 routine ,但不是基础表

如何跨多个产品查找相同时间范围的数据集

在停靠容器中备份和恢复MySQL数据库时出现Unicode字符问题

如何将左联接的小计/总计行中的所有列作废

为什么嵌套循环逻辑不能按预期工作

Travis 构建失败并出现错误 LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝

MySql SELECT 查找包含数字的区间的时间复杂度是多少?

完全匹配 IN 子句中的所有值

组平SQL查询结果

在 Presto Athena 中将字符串转换为数组

MYSQL 或 Laravel Eloquent 如何从这个订单中统计细节

在 MySQL 中使用三个表进行计算

使用 MySQL 流式传输大型结果集

如何存储百分比值?

何时在 mysql 中使用 TEXT 而不是 VARCHAR

MYSQL_ROOT_PASSWORD 已设置但在 docker 容器中获取用户'root'@'localhost'的访问被拒绝(使用密码:YES)

将 Blob 转换为字节数组的最简单方法

mysql错误'TYPE = MyISAM'