Cara yang berkesan untuk menetapkan semula jujukan Oracle kepada sifar
PostgreSQL menggunakan perintah ALTER SEQUENCE
bersama dengan pilihan RESTART
untuk menetapkan semula jujukan dengan cekap. Walau bagaimanapun, tiada arahan langsung yang sepadan dalam Oracle.
Penyelesaian Oracle: Proses tersuai
Pakar Oracle Tom Kyte menyediakan prosedur yang berkuasa untuk menetapkan semula jujukan kepada 0. Proses ini terdiri daripada langkah-langkah berikut:
Tentukan nilai jujukan semasa:
l_val
). Laraskan kenaikan jujukan:
Kembalikan perubahan:
Contoh proses:
Proses penyesuaian berikut reset_seq
meringkaskan langkah di atas:
<code class="language-sql">CREATE OR REPLACE PROCEDURE reset_seq(p_seq_name IN VARCHAR2) IS l_val NUMBER; BEGIN EXECUTE IMMEDIATE 'SELECT ' || p_seq_name || '.nextval FROM DUAL' INTO l_val; EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY -' || l_val || ' MINVALUE 0'; EXECUTE IMMEDIATE 'SELECT ' || p_seq_name || '.nextval FROM DUAL' INTO l_val; EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY 1 MINVALUE 0'; END; /</code>
Lebih banyak sumber:
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Semula Urutan Oracle dengan Cekap kepada Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!