Я хочу добавить новый столбец 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