Perintah yang Anda cari adalah:
alter table tblName drop column columnName
di mana tblName
adalah nama tabel dan columnName
adalah nama kolom, tetapi ada beberapa hal yang mungkin perlu Anda lakukan terlebih dahulu.
- Jika ada referensi kunci asing ke kolom, Anda harus menyingkirkannya terlebih dahulu.
- Jika ada indeks yang menggunakan kolom tersebut, Anda harus menghapusnya atau menyesuaikannya agar tidak menggunakan kolom tersebut.
Perlu diingat bahwa kinerja perintah ini belum tentu baik. Salah satu opsi adalah menunggu periode waktu henti ketika Anda dapat memastikan tidak ada yang akan mengakses database, ganti nama tabel saat ini, lalu gunakan create table
dan insert into ... select from
untuk mentransfer kolom yang tidak ingin Anda hapus.
Salah satu rilis Oracle selanjutnya sebenarnya memiliki penghapusan lunak yang hanya dapat menandai kolom sebagai tidak digunakan tanpa menghapusnya secara fisik. Ini memiliki efek yang sama karena Anda tidak dapat lagi mereferensikannya dan ada perintah di sepanjang baris alter table ... drop unused columns
yang dimaksudkan untuk dijalankan dalam waktu senyap, yang melakukan kerja keras untuk benar-benar menghapusnya secara fisik.
Ini memiliki keuntungan "menghilangkan" kolom dengan segera tanpa menurunkan kinerja database selama waktu sibuk.