2016-05-26 2 views
-7

Я хочу изменить тип данных для всех столбцов в моей таблице mysql. Например, varchar, чтобы удвоить.Как изменить тип данных для всех столбцов в MySQL?

+8

хорошо .. замените. –

+1

Я думаю, что хочу сделать это и в своих колонках ... Спасибо за замечательную идею! – Stivan

+0

Если вы хотите сделать это для всех столбцов 'varchar', вы можете написать хранимую процедуру, которая получает столбцы из' INFORMATION_SCHEMA.COLUMNS', а затем создает динамический SQL с запросом 'ALTER TABLE'. – Barmar

ответ

0
  1. Изменение типов столбцов возможно с помощью команды SQL ALTER TABLE MODIFY COLUMN (однако она не работает в каждой СУБД).
  2. Обычно вы должны удалить данные в любом случае, так что другой вариант будет DROP TABLE (= удалить его целиком) и создать заново с нужными столбцами (с CREATE TABLE). Вы также можете удалить только один столбец (ALTER TABLE DROP COLUMN) и добавить новый (ALTER TABLE NEW COLUMN) с новым определением.
  3. Конечно меняющегося столбец настолько прост, только до тех пор, как этот столбец не используется в каких-либо ограничений или ключей
  4. Для синтаксиса вышеуказанных команд см MySQL docs
0
alter table myTable alter column vColumn int; 

Это будет работать до тех пор, как:

-все данных будет соответствовать внутри Int

-Все данные могут быть преобразованы в целое (то есть значение «автомобиль» не получится)

-нет индексов, которые включают vColumn. Если есть индексы, вам нужно будет добавить капли и создать для них, чтобы они вернулись туда, где вы были.

Смежные вопросы