Ошибка при изменении типа столбца в базе.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Ошибка при изменении типа столбца в базе.

Сообщение slo_nik »

Добрый вечер.
В таблице есть столбец autobase тип integer(11).
Пытаюсь изменить тип на smallInteger()

Код: Выделить всё

$this->alterColumn('{{%cars}}', 'autobase', $this->smallInteger(1)->notNull()->defaultValue(0));
Но получаю ошибку
Exception: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'autobase' at row 677
Как решить данную проблему?
Удалить и заново создать столбец с новым типом?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Ошибка при изменении типа столбца в базе.

Сообщение yiijeka »

В таблице имеются значения которые не подходят под smallInteger(1)
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Ошибка при изменении типа столбца в базе.

Сообщение slo_nik »

yiijeka писал(а): 2019.05.02, 09:09 В таблице имеются значения которые не подходят под smallInteger(1)
Это понятно, а как решить эту проблему без удаления и создания снова столбца с нужным типом?
Если я удалю столбец с типом integer(11) и создам новый, с таким же именем, но с новым типом smallInteger(1)->notNull->defaultValue(0), то всё сработает.
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Re: Ошибка при изменении типа столбца в базе.

Сообщение myks1992@mail.ru »

Нужно передавать строку ‘INTEGER(1)’
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Re: Ошибка при изменении типа столбца в базе.

Сообщение myks1992@mail.ru »

Вопрос решён. Была проблема с NULL. Варианта два:
1. Удалить колонку и создать заново.
2. Все значения NULL изменить на 0 и потом изменить тип данных
Ответить