MySQL Alter table导致错误:无效使用空值

MySQL Alter table导致错误:无效使用空值,mysql,Mysql,我现有的表格: +-----------------+---------------+------+-----+---------+-------------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------+------+-----+---------+-------------------+ | cre

我现有的表格:

+-----------------+---------------+------+-----+---------+-------------------+
| 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改为notnull。我是否需要删除列,然后添加

只有在
创建\u日期

专栏

使用一些默认日期更新您的
创建日期
列,然后更改表格

像这样

UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL;

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

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

试试这个

--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;

迟来的评论,但我猜要么你不能使用,只要你有空值,要么直到你没有任何空值。否则就不会有问题了。