Kommandot du letar efter är:
alter table tblName drop column columnName
där tblName
är namnet på tabellen och columnName
är namnet på kolumnen, men det finns några saker du kan behöva göra först.
- Om det finns några främmande nyckelreferenser till kolumnen måste du bli av med dem först.
- Om det finns ett index som använder den kolumnen, måste du antingen bli av med det eller justera det så att det inte används i den kolumnen.
Tänk på att det här kommandot inte nödvändigtvis är bra. Ett alternativ är att vänta på en stilleståndsperiod när du kan vara säker på att ingen kommer åt databasen, byt namn på den aktuella tabellen och använd sedan create table
och insert into ... select from
för att överföra de kolumner du inte vill ta bort.
En av de senare utgåvorna av Oracle har faktiskt en mjuk borttagning som bara kan markera en kolumn som oanvänd utan att ta bort den fysiskt. Det har samma effekt eftersom du inte längre kan referera till det och det finns ett kommando i stil med alter table ... drop unused columns
som är tänkt att köras i tyst tid, vilket gör det hårda arbetet med att faktiskt ta bort det fysiskt.
Detta har fördelen av att kolumnerna "försvinner" omedelbart utan att dra ner databasprestanda under hektiska tider.