我的现有表:
+-----------------+---------------+------+-----+---------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------------------+
| creation_date | timestamp | YES | | NULL |
我想把table改成这样:
ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
但是我得到了这个错误:
第7行错误1138(22004):无效使用NULL值
这个问题看起来像是将Nullable从YES更改为NOT NULL。我是否需要删除列并在之后添加?
3条答案
按热度按时间yqhsw0fo1#
似乎有几行的值为NULL。请将该列中的所有NULL值更新为默认日期,然后尝试进行更改。
试试这个
n3h0vuf22#
在
creation_date
列中没有NULL
值之前,不能使用此查询。用一些默认日期更新
creation_date
列,然后修改表。就像这样
thtygnil3#
简单地说,如果表中充满了数据,我们就不能改变表的结构。
求解为:
1.删除所有数据(
DELETE FROM table_name
)或更新(UPDATE table_name set new_value where condition
)1.使用(
ALTER
与MODIFY
或CHANGE
)更新表的结构