Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi manipulasi urutan
Bagian ini menjelaskan fungsi untuk beroperasi pada objek urutan, juga disebut generator urutan atau hanya urutan. Objek urutan adalah tabel baris tunggal khusus yang dibuat denganCREATE SEQUENCE. Objek urutan biasanya digunakan untuk menghasilkan pengidentifikasi unik untuk baris tabel. Fungsi urutan menyediakan metode sederhana yang aman untuk multipengguna untuk mendapatkan nilai urutan berturut-turut dari objek 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
| Fungsi | Deskripsi |
|---|---|
nextval ( regclass ) → bigint |
Memajukan objek urutan ke nilai berikutnya dan mengembalikan nilai itu. Ini dilakukan secara atom: bahkan jika beberapa sesi berjalan secara nextval bersamaan, masing-masing akan dengan aman menerima nilai urutan yang berbeda. Jika objek urutan telah dibuat dengan parameter default, nextval panggilan berturut-turut akan mengembalikan nilai yang meningkat dimulai dengan 1. Perilaku lain dapat diperoleh dengan menggunakan parameter yang sesuai dalam CREATE SEQUENCE perintah. Fungsi ini membutuhkan USAGE atau UPDATE hak istimewa pada urutan. |
setval ( regclass, bigint [, boolean ] ) → bigint |
Menetapkan nilai objek urutan saat ini, dan opsional is_called benderanya. Bentuk dua parameter menetapkan last_value bidang urutan ke nilai yang ditentukan dan menetapkan is_called bidangnyatrue, yang berarti bahwa yang berikutnya nextval akan memajukan urutan sebelum mengembalikan nilai. Nilai yang akan dilaporkan oleh juga currval diatur ke nilai yang ditentukan. Dalam bentuk tiga parameter, is_called dapat diatur ke salah satu true ataufalse. truememiliki efek yang sama dengan bentuk dua parameter. Jika diatur kefalse, berikutnya nextval akan mengembalikan persis nilai yang ditentukan, dan kemajuan urutan dimulai dengan yang berikut ini. nextval Selain itu, nilai yang dilaporkan oleh currval tidak diubah di sini. Contoh: Hasil yang dikembalikan oleh setval hanyalah nilai dari argumen keduanya. Fungsi ini membutuhkan UPDATE hak istimewa pada urutan. |
currval ( regclass ) → bigint |
Mengembalikan nilai yang paling baru diperoleh nextval untuk urutan ini dalam sesi saat ini. (Kesalahan dilaporkan jika tidak nextval pernah dipanggil untuk urutan ini dalam sesi ini.) Karena ini mengembalikan nilai session-local, ini memberikan jawaban yang dapat diprediksi apakah sesi lain telah berjalan atau tidak nextval karena sesi saat ini melakukannya. Fungsi ini membutuhkan USAGE atau SELECT hak istimewa pada urutan. |
lastval () → bigint |
Mengembalikan nilai yang terakhir dikembalikan oleh nextval dalam transaksi saat ini. Fungsi ini identik dengancurrval, kecuali bahwa alih-alih mengambil nama urutan sebagai argumen, ini mengacu pada urutan nextval mana pun yang paling baru diterapkan dalam transaksi saat ini. Ini adalah kesalahan untuk menelepon lastval jika nextval belum dipanggil dalam transaksi saat ini. Fungsi ini membutuhkan USAGE atau SELECT hak istimewa pada urutan yang terakhir digunakan. |
Awas
Nilai yang diperoleh nextval tidak direklamasi untuk digunakan kembali jika transaksi pemanggilan kemudian dibatalkan. Ini berarti bahwa transaksi dibatalkan atau kerusakan database dapat mengakibatkan kesenjangan dalam urutan nilai yang ditetapkan. Itu bisa terjadi tanpa membatalkan transaksi juga. Misalnya, ON CONFLICT klausa INSERT with an akan menghitung to-be-inserted tuple, termasuk melakukan nextval panggilan yang diperlukan, sebelum mendeteksi konflik apa pun yang akan menyebabkannya mengikuti aturan sebagai gantinya. ON CONFLICT Dengan demikian, objek urutan Aurora DSQL tidak dapat digunakan untuk mendapatkan urutan “tanpa celah”.
Demikian juga, perubahan status urutan setval yang dibuat oleh segera terlihat oleh transaksi lain, dan tidak dibatalkan jika transaksi panggilan kembali.
Urutan yang akan dioperasikan oleh fungsi urutan ditentukan oleh regclass argumen, yang hanyalah OID dari urutan dalam katalog pg_class sistem. Namun, Anda tidak perlu mencari OID dengan tangan, karena konverter input tipe regclass data akan melakukan pekerjaan untuk Anda. Lihat dokumentasi PostgreSQL tentang Jenis Pengenal Objek untuk detailnya.