Добавление нового столбца NOT NULL в существующую таблицу с данными - PullRequest
2 голосов
/ 20 сентября 2019

Я хочу добавить новый столбец NOT NULL в существующую таблицу, в которой есть данные в MySQL 5.7.Я видел этот вопрос и использую предложенное там решение.

Я добавляю новый столбец как NULL, заполняю данные для нового столбца и затем изменяю столбец с *От 1007 * до NULL.

-- 1. add new column as null
ALTER TABLE `mytable` ADD COLUMN newCol BIT NULL AFTER curCol;

-- 2. populate default data for new column
SET sql_safe_updates = 0;
UPDATE `mytable` SET newCol = 0;
SET sql_safe_updates = 1;

-- 3. change the column to NOT NULL
ALTER TABLE `mytable` ALTER COLUMN newCol BIT NOT NULL;

Но в последней команде я получаю следующую ошибку:

Код ошибки: 1064. У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'BIT NOT NULL:' в строке 1

1 Ответ

2 голосов
/ 20 сентября 2019

Этот фрагмент SQL недопустим в MySQL:

ALTER TABLE `mytable` ALTER COLUMN newCol BIT NOT NULL;

Вместо этого рассмотрим:

ALTER TABLE `mytable` MODIFY newCol BIT NOT NULL;

Ссылка: MySQL ALTER TABLE синтаксис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...