Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara membuat urutan Oracle yang dimulai dengan nilai maksimal dari sebuah tabel?

Jika Anda dapat menggunakan PL/SQL, coba (EDIT:Menggabungkan saran xlnt Neil untuk memulai dengan nilai yang lebih tinggi berikutnya):

SELECT 'CREATE SEQUENCE transaction_sequence MINVALUE 0 START WITH '||MAX(trans_seq_no)+1||' INCREMENT BY 1 CACHE 20'
  INTO v_sql
  FROM transaction_log;

EXECUTE IMMEDIATE v_sql;

Hal lain yang perlu dipertimbangkan:Dengan menyetel parameter CACHE ke 20, Anda berisiko kehilangan hingga 19 nilai dalam urutan Anda jika database turun. Nilai-nilai yang di-CACHE hilang saat database dimulai ulang. Kecuali jika Anda sering menekan urutannya, atau, Anda tidak terlalu peduli dengan celahnya, saya akan menyetelnya ke 1.

Satu nit terakhir:nilai yang Anda tentukan untuk CACHE dan INCREMENT BY adalah default. Anda dapat mengabaikannya dan mendapatkan hasil yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menulis di ExcelSheet menggunakan paket UTL_FILE di Oracle

  2. Audit di Oracle

  3. sqlplus cara menemukan detail sesi database yang saat ini terhubung

  4. Urutan Oracle dimulai dengan 2, bukan 1

  5. Apakah ada tipe boolean di database Oracle?