1. ホーム
  2. mysql

[解決済み] MySQL Alter table causes Error: NULL値の使用は無効です。

2023-04-20 21:46:52

質問

私の既存のテーブルです。

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

このようにテーブルを変更したいと思いました。

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

しかし、こんなエラーが出ました。

ERROR 1138 (22004) at line 7: NULL値の使用は無効です。

YESだったNULLableをNOT NULLに変更したことが問題のようです。列を削除して、後から追加する必要があるのでしょうか?

どのように解決するのですか?

NULL値を持つ行がいくつかあるようです。すべての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;