Polecenie, którego szukasz to:
alter table tblName drop column columnName
gdzie tblName
to nazwa tabeli i columnName
to nazwa kolumny, ale jest kilka rzeczy, które musisz najpierw zrobić.
- Jeśli są jakieś odniesienia do klucza obcego do kolumny, musisz się ich najpierw pozbyć.
- Jeśli istnieje indeks korzystający z tej kolumny, musisz albo się go pozbyć, albo dostosować, aby nie używał tej kolumny.
Pamiętaj, że wykonanie tego polecenia niekoniecznie musi być dobre. Jedną z opcji jest poczekanie na okres przestoju, kiedy możesz mieć pewność, że nikt nie będzie miał dostępu do bazy danych, zmień nazwę bieżącej tabeli, a następnie użyj create table
i insert into ... select from
aby przenieść kolumny, których nie chcesz usunąć.
Jedno z późniejszych wydań Oracle faktycznie ma miękkie usuwanie, które może po prostu oznaczać kolumnę jako nieużywaną bez fizycznego jej usuwania. Ma to ten sam efekt, ponieważ nie można już się do niego odwoływać i jest polecenie wzdłuż linii alter table ... drop unused columns
który ma być uruchamiany w cichym czasie, który wykonuje ciężką pracę polegającą na fizycznym usunięciu go.
Ma to tę zaletę, że „znikają” kolumny natychmiast bez zmniejszania wydajności bazy danych w czasie wzmożonego ruchu.