Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Nilai Semasa Urutan Oracle Tanpa Penambahan?

Bagaimana untuk Mendapatkan Nilai Semasa Urutan Oracle Tanpa Penambahan?

Linda Hamilton
Lepaskan: 2024-12-25 11:14:08
asal
436 orang telah melayarinya

How to Retrieve the Current Value of an Oracle Sequence Without Incrementing?

Mendapatkan semula Nilai Jujukan Oracle Tanpa Menambah

Untuk mendapatkan nilai semasa jujukan Oracle tanpa menambahnya, pernyataan SQL berikut boleh digunakan :

SELECT last_number
  FROM all_sequences
 WHERE sequence_owner = '<sequence owner>'
   AND sequence_name = '<sequence_name>';
Salin selepas log masuk

Pernyataan ini mendapatkan semula nombor terakhir yang dijana oleh yang ditentukan jujukan tanpa mengubah suai nilai jujukan.

Sebagai alternatif, paparan berikut boleh memberikan metadata jujukan, termasuk nilai terjana terakhir:

  • jujukan_pengguna: Untuk jujukan dalam lalai pengguna semasa skema
  • all_sequences: Untuk jujukan yang boleh diakses oleh pengguna semasa
  • dba_sequences: Untuk semua jujukan (untuk pengguna yang mempunyai keistimewaan yang sesuai)

Sebagai contoh, untuk mendapatkan semula nilai semasa jujukan yang dinamakan "SEQ" dalam skema lalai:

SELECT last_number
  FROM user_sequences
 WHERE sequence_name = 'SEQ';
Salin selepas log masuk

Perhatikan bahawa saiz cache jujukan boleh memberi kesan kepada kebolehpercayaan kaedah ini. Jika saiz cache lebih besar daripada 1, jujukan mungkin telah mencache berbilang nilai yang boleh diambil tanpa penambahan. Untuk menangani perkara ini, kenaikan jujukan boleh ditetapkan kepada nilai negatif, kemudian kembali kepada nilai asalnya, seperti ditunjukkan dalam contoh berikut:

-- Set the sequence to decrement by the same as its original increment
ALTER SEQUENCE seq INCREMENT BY -1;

-- Retrieve the sequence value
SELECT seq.nextval FROM dual;

-- Reset the sequence to its original increment
ALTER SEQUENCE seq INCREMENT BY 1;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Semasa Urutan Oracle Tanpa Penambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan