Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
ALTER SEQUENCE
ALTER SEQUENCE— mengubah definisi generator urutan.
penting
Saat menggunakan urutan, nilai cache harus dipertimbangkan dengan cermat. Untuk informasi selengkapnya, lihat info penting di CREATE SEQUENCE halaman.
Untuk panduan tentang cara terbaik menggunakan urutan berdasarkan pola beban kerja, lihat. Bekerja dengan urutan dan kolom identitas
Sintaksis yang didukung
ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ [ NO ] CYCLE ] [ START [ WITH ] start ] [ RESTART [ [ WITH ] restart ] ] [ CACHE cache ] [ OWNED BY { table_name.column_name | NONE } ] ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema where cache is 1 or cache >= 65536
Deskripsi
ALTER SEQUENCEmengubah parameter generator urutan yang ada. Parameter apa pun yang tidak secara khusus ditetapkan dalam ALTER SEQUENCE perintah mempertahankan pengaturan sebelumnya.
Anda harus memiliki urutan untuk digunakanALTER SEQUENCE. Untuk mengubah skema urutan, Anda juga harus memiliki CREATE hak istimewa pada skema baru. Untuk mengubah pemilik, Anda harus SET ROLE dapat memiliki peran baru, dan peran itu harus memiliki CREATE hak istimewa pada skema urutan. (Pembatasan ini memberlakukan bahwa mengubah pemilik tidak melakukan apa pun yang tidak dapat Anda lakukan dengan menjatuhkan dan membuat ulang urutan. Namun, superuser dapat mengubah kepemilikan urutan apa pun.)
Parameter
name-
Nama (opsional schema-qualified) dari urutan yang akan diubah.
IF EXISTS-
Jangan melempar kesalahan jika urutannya tidak ada. Pemberitahuan dikeluarkan dalam kasus ini.
increment-
Klausul
INCREMENT BYini opsional. Nilai positif akan membuat urutan naik, yang negatif menjadi urutan menurun. Jika tidak ditentukan, nilai kenaikan lama akan dipertahankan.increment minvalue/NO MINVALUE-
Klausa opsional
MINVALUEmenentukan nilai minimum yang dapat dihasilkan oleh urutan. JikaminvalueNO MINVALUEditentukan, default 1 dan nilai minimum tipe data untuk urutan naik dan turun, masing-masing, akan digunakan. Jika tidak ada opsi yang ditentukan, nilai minimum saat ini akan dipertahankan. maxvalue/NO MAXVALUE-
Klausa opsional
MAXVALUEmenentukan nilai maksimum untuk urutan. JikamaxvalueNO MAXVALUEditentukan, default dari nilai maksimum tipe data dan -1 untuk urutan naik dan turun, masing-masing, akan digunakan. Jika tidak ada opsi yang ditentukan, nilai maksimum saat ini akan dipertahankan. CYCLE-
Kata
CYCLEkunci opsional dapat digunakan untuk mengaktifkan urutan untuk membungkus ketikamaxvalueatauminvaluetelah dicapai oleh urutan naik atau turun masing-masing. Jika batas tercapai, nomor berikutnya yang dihasilkan akan menjadiminvalueataumaxvalue, masing-masing. NO CYCLE-
Jika kata
NO CYCLEkunci opsional ditentukan, panggilan apa punnextvalsetelah urutan mencapai nilai maksimumnya akan mengembalikan kesalahan. Jika tidakNO CYCLEadaCYCLEatau ditentukan, perilaku siklus lama akan dipertahankan. start-
Klausa opsional
START WITHmengubah nilai awal urutan yang direkam. Ini tidak berpengaruh pada nilai urutan saat ini; itu hanya menetapkan nilai yang akan digunakanstartALTER SEQUENCE RESTARTperintah future. restart-
Klausa opsional
RESTART [ WITHmengubah nilai urutan saat ini. Ini mirip dengan memanggilrestart]setvalfungsi denganis_called=false: nilai yang ditentukan akan dikembalikan oleh panggilan berikutnya darinextval. MenulisRESTARTtanparestartnilai setara dengan memasok nilai awal yang direkam olehCREATE SEQUENCEatau terakhir ditetapkan olehALTER SEQUENCE START WITH.Berbeda dengan
setvalpanggilan,RESTARToperasi pada urutan bersifat transaksional dan memblokir transaksi bersamaan dari mendapatkan nomor dari urutan yang sama. Jika itu bukan mode operasi yang diinginkan,setvalharus digunakan. cache-
Klausul
CACHEini memungkinkan nomor urut untuk dialokasikan sebelumnya dan disimpan dalam memori untuk akses yang lebih cepat. Nilai harus berupa 1 atau beberapa nilai >= 65536. Jika tidak ditentukan, nilai cache lama akan dipertahankan. Untuk informasi selengkapnya tentang perilaku cache, lihat panduan di bawahCREATE SEQUENCE.cache OWNED BY/table_name.column_nameOWNED BY NONE-
OWNED BYOpsi ini menyebabkan urutan dikaitkan dengan kolom tabel tertentu, sehingga jika kolom itu (atau seluruh tabelnya) dijatuhkan, urutan akan secara otomatis turun juga. Jika ditentukan, asosiasi ini menggantikan asosiasi yang ditentukan sebelumnya untuk urutan tersebut. Tabel yang ditentukan harus memiliki pemilik yang sama dan berada dalam skema yang sama dengan urutannya. MenentukanOWNED BY NONEmenghapus asosiasi yang ada, membuat urutan “berdiri bebas”. new_owner-
Nama pengguna dari pemilik baru urutan.
new_name-
Nama baru untuk urutan.
new_schema-
Skema baru untuk urutan.
Catatan
ALTER SEQUENCEtidak akan segera mempengaruhi nextval hasil di backend, selain yang sekarang, yang memiliki nilai urutan yang telah dialokasikan sebelumnya (di-cache). Mereka akan menggunakan semua nilai yang di-cache sebelum memperhatikan parameter pembuatan urutan yang diubah. Backend saat ini akan segera terpengaruh.
ALTER SEQUENCEtidak mempengaruhi currval status untuk urutan.
ALTER SEQUENCEdapat menyebabkan transaksi lain ke OCC.
Untuk alasan historis, ALTER TABLE dapat digunakan dengan urutan juga; tetapi satu-satunya varian ALTER TABLE yang diizinkan dengan urutan setara dengan bentuk yang ditunjukkan di atas.
Contoh
Mulai ulang urutan yang disebutserial, pada 105:
ALTER SEQUENCE serial RESTART WITH 105;
Kompatibilitas
ALTER SEQUENCEsesuai dengan standar SQL, kecuali untuk,,,,AS, dan SET SCHEMA klausa START WITH OWNED BY OWNER TORENAME
TO, yang merupakan ekstensi PostgreSQL.