* Промяна на съществуващи таблици
Публикувано на 15 февруари 2009 в раздел Бази от Данни.
Нека вече имаме съществуващи таблици, които обаче бихме искали да променим. Да изтриваме и създаваме наново дадена таблица би било непрактично. Поради тази причина са въведени команди за промяна на таблица.
Нека разгледаме предишния пример. Искаме да добавим полета за среден успех в таблицата "zadochnici" и "students". Ще изпълним следната команда:
ALTER TABLE `university`.`zadochnici` ADD `sruspeh` FLOAT( 3 ) NULL; ALTER TABLE `university`.`students` ADD `sruspeh` FLOAT( 3 ) NULL;
В следващия момент обаче ще се досетим, че така се нарушава логическата връзка на таблиците. Знаем, че таблицата "zadochnici" е подклас на таблицата "students", т.е. напълно нелогично е да пазим оценките на задочниците два пъти. Затова ще изтрием така създаденото поле:
ALTER TABLE `university`.`zadochnici` DROP `sruspeh`;
Ако искаме да променим името и/или типа данни на дадена колона, то използваме аналогичен синтаксис:
ALTER TABLE `university`.`students` CHANGE `sruspeh` `sr_uspeh` FLOAT( 3 ) NULL;
Тук променихме името на колоната "sruspeh" в "sr_uspeh" в таблица "students".
Чрез ALTER TABLE можете също да слагате и премахвате ключове. Това става чрез командите "ADD CONSTRAINT" и "DROP CONSTRAINT".
Задължително ли е писането на апостроф (`) при използването на атрибути?
Заявките и в Workbench, и в Command Line се изпълняват и без него.
Не е задължително.
Може ли с един пример да покажете как се променя типа данни?
ALTER TABLE <таблица>
MODIFY <колона> <нов тип>;