我现有的表格:
+-----------------+---------------+------+-----+---------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------------------+
| creation_date | timestamp | YES | | NULL |
Run Code Online (Sandbox Code Playgroud)
我想改变这样的表格:
ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误:
第7行的错误1138(22004):无效使用NULL值
问题看起来像是将Nullable改为YES为NOT NULL.我是否需要删除列并在之后添加?
rs.*_*rs. 98
看起来有几行具有NULL值.将所有空值更新为该列中的默认日期,然后尝试进行更改.
试试这个
--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;
Run Code Online (Sandbox Code Playgroud)
NULL在creation_date列中没有值之前,不能使用此查询.
creation_date使用某个默认日期更新列,然后更改表.
像这样
UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL;
ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50657 次 |
| 最近记录: |