Подтвердить что ты не робот

MySQL Alter table вызывает ошибку: неверное использование значения NULL

Моя существующая таблица:

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

Я хотел изменить таблицу следующим образом:

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

Но я получил эту ошибку:

ОШИБКА 1138 (22004) в строке 7: Недопустимое использование значения NULL

Проблема выглядит как изменение Nullable, которое было YES, чтобы NOT NULL. Нужно ли отбрасывать столбец и добавлять потом?

4b9b3361

Ответ 1

Похоже, что есть несколько строк с NULL значением. Обновите все значения null до даты по умолчанию в этом столбце, а затем попробуйте сделать alter.

Попробуйте это

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

Ответ 2

Вы не можете использовать этот запрос, пока не получите нулевые значения в create_date столбец.

Обновите столбец create_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;