Командата, която търсите е:
alter table tblName drop column columnName
където tblName
е името на таблицата и columnName
е името на колоната, но има няколко неща, които може да се наложи да направите първо.
- Ако има препратки към колоната с външен ключ, първо трябва да се отървете от тях.
- Ако има индекс, използващ тази колона, ще трябва или да се отървете от него, или да го коригирате така, че да не използва тази колона.
Имайте предвид, че изпълнението на тази команда може да не е непременно добро. Една от опциите е да изчакате период на прекъсване, когато можете да сте сигурни, че никой няма да има достъп до базата данни, да преименувате текущата таблица и след това да използвате create table
и insert into ... select from
за да прехвърлите колоните, които не искате да бъдат изтрити.
Една от по-късните версии на Oracle всъщност има меко изтриване, което може просто да маркира колона като неизползвана, без да я премахва физически. Има същия ефект, тъй като вече не можете да го препращате и има команда по линия на alter table ... drop unused columns
който е предназначен да работи в тихо време, което върши тежката работа по действителното му физическо премахване.
Това има предимството да "изчезват" колоните веднага, без да намаляват производителността на базата данни по време на натоварено време.