Редактиране на MySQL тип чрез alter table

Видях, че има хора които се затрудняват когато им се наложи да променят тип на колона в 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

Категория:

Logged in as {{omniform_current_user_display_name}}. Edit your profile. Log out? Required fields are marked *

Your email address will not be published. Required fields are marked *

Comments are closed.

You must be logged in to post a comment.