Mendapatkan Nilai Jujukan Tanpa Menambah
Jujukan Oracle menyediakan cara yang mudah untuk menjana nilai penambahan untuk digunakan dalam aplikasi pangkalan data. Walau bagaimanapun, kadangkala adalah wajar untuk mendapatkan semula nilai semasa jujukan tanpa menambahkannya.
Satu kaedah melibatkan penggunaan lajur_nombor terakhir daripada paparan semua_jujukan:
SELECT last_number FROM all_sequences WHERE sequence_owner = '<sequence owner>' AND sequence_name = '<sequence_name>';
Pertanyaan ini mengembalikan nilai terakhir yang dijana oleh jujukan tanpa menambahnya.
Untuk jujukan dalam lalai skema, anda boleh menggunakan paparan user_sequences sebaliknya:
SELECT last_number FROM user_sequences WHERE sequence_name = '<sequence_name>';
Pendekatan lain, yang mengelakkan keperluan untuk pertanyaan berasingan, adalah untuk menambah dan mengurangkan nilai jujukan:
SELECT seq.nextval AS next_value FROM dual; -- Decrement the sequence by the same amount it was incremented ALTER SEQUENCE seq INCREMENT BY -1; SELECT seq.nextval AS next_value FROM dual; -- Reset the sequence to its original increment ALTER SEQUENCE seq INCREMENT BY 1;
Walau bagaimanapun , adalah penting untuk ambil perhatian bahawa kaedah ini mungkin tidak boleh dipercayai jika sesi lain menggunakan urutan secara serentak, kerana ia boleh membawa kepada Oracle ralat urutan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Semasa Jujukan Oracle Tanpa Menaikkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!