Просто чтобы сделать это явным, ответы ниже (используя ALTER TABLE), на самом деле, будут работать, даже если столбец уже содержит данные. Однако преобразование плавающего столбца в целочисленный столбец приведет к тому, что любые нецелые значения в нем будут округлены до ближайшего целого числа.
В зависимости от того, сколько столбцов вы хотите изменить, лучше всего сгенерировать скрипт или использовать какой-нибудь клиентский графический интерфейс mysql.
Дружеское напоминание - по умолчанию для столбцов используется значение NULLABLE, поэтому, если у вас есть столбец NOT NULL, не забудьте использовать «MODIFY columnname INTEGER NOT NULL», иначе вы измените свой столбец с NOT NULL на NULL.
Despertar
3
Будет ли изменение таблицы удалять данные в таблице или произойдет сбой при выполнении, если что-то не является жалобой с новым типом столбца?
EndermanAPM
1
ALTER TABLE имя таблицы MODIFY имя столбца INTEGER без знака; <- если вы хотите, чтобы новый столбец был без знака. Был мой случай.
Мирцеалунгу
Я думаю, что предупреждение @Despertars также может иметь отношение к сохранению любых спецификаций CHARSET или COLLATE.
!! Не сохраняет уникальных ограничений, но должен быть легко исправлен с помощью другого if-параметра concat. Я оставлю это на усмотрение читателя, чтобы реализовать это при необходимости ..
ALTER TABLE
), на самом деле, будут работать, даже если столбец уже содержит данные. Однако преобразование плавающего столбца в целочисленный столбец приведет к тому, что любые нецелые значения в нем будут округлены до ближайшего целого числа.Ответы:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Это изменит тип данных данного столбца
В зависимости от того, сколько столбцов вы хотите изменить, лучше всего сгенерировать скрипт или использовать какой-нибудь клиентский графический интерфейс mysql.
источник
источник
Вы также можете использовать это:
источник
Если вы хотите изменить все столбцы определенного типа на другой тип, вы можете сгенерировать запросы, используя такой запрос:
Например, если вы хотите изменить столбцы с
tinyint(4)
наbit(1)
, запустите их так:и получить вывод, как это:
!! Не сохраняет уникальных ограничений, но должен быть легко исправлен с помощью другого
if
-параметраconcat
. Я оставлю это на усмотрение читателя, чтобы реализовать это при необходимости ..источник
Пример:
источник
Вы используете
alter table ... change ...
метод, например:источник
источник
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
Вы также можете установить значение по умолчанию для столбца, просто добавив ключевое слово DEFAULT, за которым следует значение.
Это также работает для MariaDB (протестированная версия 10.2)
источник
Если вы хотите изменить детали столбца добавить комментарий, используйте этот
источник