Видях, че има хора които се затрудняват когато им се наложи да променят тип на колона в MySQL. Примерно един приятел направил таблица и колоната X е от тип varchar(500), но след време установява, че тази колона иска да бъде от тип "text", а не varchar. Той дъмпнал цялата таблица и ръчно заместил varchar(500) със "text" и всичко било наред, но това рационално ли е ? НЕ
Решението е:
Могат да се ползват два вида метода:
1. Alter table change
При първия метод се изисква да се въведе старо име на колона и ново:
ALTER TABLE t1 CHANGE a b INTEGER;
или
ALTER TABLE t1 CHANGE b b INTEGER;
2. Alter table modify (Аз лично бих използвал този метод):
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
Има вариант където колоната е ключова дума (примерно вместо b -> desc). По този начин ще изведе грешка и няма да промени името или типа на колоната. За да се направи промяна се добавя и таблицата т.е.
alter table t1 change tablica.b tablica.novo_ime text;
За повече информация тук: Mysql Reference Manual
Редактиране на MySQL тип чрез alter table,