Memodifikasi definisi generator sequence.
Sintaksis
ALTER SEQUENCE name [ INCREMENT BY increment ]
[ MINVALUE minvalue ] [ MAXVALUE maxvalue ]
[ CACHE cache | NOCACHE ] [ CYCLE ]Deskripsi
ALTER SEQUENCE memodifikasi parameter generator sequence yang sudah ada. Parameter yang tidak ditentukan akan mempertahankan pengaturan saat ini.
Parameter
| Parameter | Perilaku default | Deskripsi |
|---|---|---|
name | — | Nama sequence yang akan dimodifikasi. Dapat diberi kualifikasi skema. |
INCREMENT BY increment | Mempertahankan increment saat ini | Nilai langkah untuk sequence. Nilai positif membuat sequence menaik; nilai negatif membuat sequence menurun. |
MINVALUE minvalue | Mempertahankan minimum saat ini | Nilai minimum yang dapat dihasilkan oleh sequence. |
MAXVALUE maxvalue | Mempertahankan maksimum saat ini | Nilai maksimum yang dapat dihasilkan oleh sequence. |
CACHE cache | NOCACHE | Mempertahankan pengaturan cache saat ini | Jumlah nilai sequence yang dialokasikan sebelumnya di memori. Minimum adalah 1, yang menghasilkan satu nilai dalam satu waktu. |
CYCLE | Mempertahankan pengaturan cycle saat ini | Memungkinkan sequence kembali ke awal ketika mencapai batasnya. Untuk sequence menaik, nilai berikutnya setelah maksimum adalah MINVALUE. Untuk sequence menurun, nilai berikutnya setelah minimum adalah MAXVALUE. |
Catatan penggunaan
Perubahan bersifat langsung dan tidak dapat dikembalikan. Untuk mencegah pemblokiran transaksi konkuren yang mengambil nilai dari sequence yang sama, ALTER SEQUENCE tidak mendukung rollback.
Cache memengaruhi kapan perubahan berlaku di seluruh backend. Backend saat ini langsung melihat parameter baru. Backend lain terus menggunakan nilai NEXTVAL yang telah dialokasikan sebelumnya hingga cache-nya habis, lalu menerapkan parameter baru.
Kompatibilitas Oracle
Kata kunci berikut tersedia di PolarDB untuk Oracle tetapi tidak kompatibel dengan database Oracle:
| Kata Kunci | Perilaku |
|---|---|
NO MINVALUE | Menetapkan MINVALUE ke 1 untuk sequence menaik dan -2^63-1 untuk sequence menurun. |
NO MAXVALUE | Menetapkan MAXVALUE ke 2^63-1 untuk sequence menaik dan -1 untuk sequence menurun. |
NO CYCLE | Menentukan bahwa sequence tidak kembali ke awal. |
Contoh
Tetapkan increment menjadi 2 dan alokasikan sebelumnya 5 nilai untuk sequence serial:
ALTER SEQUENCE serial INCREMENT BY 2 CACHE 5;