Jika sebuah tabel terpartisi memiliki indeks global, operasi DDL dapat dilakukan pada tabel tersebut.
Sintaksis
ALTER TABLE relation_expr alter_partition_cmd [update_global_index_clause]
alter_partition_cmd = { DROP PARTITION partition_name |
DROP PARTITION FOR partition_values |
ADD PARTITION partition_name table_partition_description |.....}
update_global_index_clause = { UPDATE | INVALIDATE } GLOBAL INDEXES}Deskripsi
- UPDATE GLOBAL INDEXES: Jika Anda menggunakan klausa UPDATE GLOBAL INDEXES saat melakukan operasi DDL pada tabel terpartisi, semua indeks global untuk tabel tersebut akan diperbarui. Versi saat ini tidak mendukung klausa UPDATE GLOBAL INDEXES. Jika Anda mencoba menggunakannya, kesalahan akan dilaporkan.
- INVALIDATE GLOBAL INDEXES: Jika Anda menggunakan klausa INVALIDATE GLOBAL INDEXES saat melakukan operasi DDL pada tabel terpartisi, semua indeks global untuk tabel tersebut akan dibatalkan validitasnya.
- Perilaku default:
- Secara default, kesalahan akan dilaporkan ketika pernyataan DDL dijalankan pada tabel terpartisi yang berisi indeks global.
- Jika parameter
polar_enable_invalidate_global_indexdisetel ke on dan klausa UPDATE GLOBAL INDEXES serta INVALIDATE GLOBAL INDEXES tidak digunakan, semua indeks global pada tabel terpartisi secara default dibatalkan validitasnya. Jika Anda menyertakan TRUNCATE, CLUSTER, atau VACUUM FULL dalam pernyataan DDL Anda, semua indeks global untuk tabel terpartisi yang ditentukan juga dibatalkan validitasnya.
- Jika sebuah tabel terpartisi memiliki indeks global, Anda dapat melakukan operasi DDL berikut:
- hapus partisi
- pisah partisi
- gabung partisi
- tukar partisi
- potong partisi
- potong tabel anak
- cluster/vacuum full tabel anak
- Jika Anda menggunakan klausa INVALIDATE GLOBAL INDEXES saat melakukan salah satu dari operasi DDL berikut, indeks global untuk tabel terpartisi yang ditentukan tidak dibatalkan validitasnya.
- tambah partisi
- pindah partisi
Contoh
- tambah partisi
ALTER TABLE gi_ora ADD PARTITION p4 VALUES LESS THAN(400); ALTER TABLE gi_ora ADD PARTITION p4 VALUES LESS THAN(400) UPDATE GLOBAL INDEXES; ALTER TABLE gi_ora ADD PARTITION p4 VALUES LESS THAN(400) INVALIDATE GLOBAL INDEXES; (1 baris) - hapus partisi
ALTER TABLE gi_ora DROP PARTITION p4 UPDATE GLOBAL INDEXES; ALTER TABLE gi_ora DROP PARTITION p4 INVALIDATE GLOBAL INDEXES;