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>';
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:
Sebagai contoh, untuk mendapatkan semula nilai semasa jujukan yang dinamakan "SEQ" dalam skema lalai:
SELECT last_number FROM user_sequences WHERE sequence_name = 'SEQ';
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;
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!