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

Cara menggunakan urutan Oracle DB tanpa kehilangan nomor urutan berikutnya jika terjadi roll-back

Dari sudut pandang saya, Anda harus menggunakan urutan dan berhenti mengkhawatirkan kesenjangan.

Dari sudut pandang Anda, saya akan mengatakan bahwa mengubah urutannya lebih buruk daripada memiliki meja. Perhatikan bahwa akses ke tabel itu harus dibatasi untuk satu pengguna, jika tidak, Anda akan mendapatkan nilai duplikat jika dua (atau lebih) pengguna mengaksesnya secara bersamaan.

Berikut adalah contoh kode; lihat, gunakan/sesuaikan jika Anda mau.

SQL> create table broj (redni_br number not null);

Table created.

SQL>
SQL> create or replace function f_get_broj
  2     return number
  3  is
  4     pragma autonomous_transaction;
  5     l_redni_br   broj.redni_br%type;
  6  begin
  7         select b.redni_br + 1
  8           into l_redni_br
  9           from broj b
 10     for update of b.redni_br;
 11
 12     update broj b
 13        set b.redni_br = l_redni_br;
 14
 15     commit;
 16     return (l_redni_br);
 17  exception
 18     when no_data_found
 19     then
 20        lock table broj in exclusive mode;
 21
 22        insert into broj (redni_br)
 23             values (1);
 24
 25        commit;
 26        return (1);
 27  end f_get_broj;
 28  /

Function created.

SQL> select f_get_broj from dual;

F_GET_BROJ
----------
         1

SQL> select f_get_broj from dual;

F_GET_BROJ
----------
         2

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari Tahu Simbol Mata Uang Yang Digunakan Sesi Anda di Oracle

  2. Bagaimana membuat daftar semua tabel yang digunakan dalam prosedur tersimpan tertentu di oracle

  3. Kesalahan saat menjalankan prosedur tersimpan Oracle di SSRS:PLS-00306:nomor atau jenis argumen yang salah dalam panggilan ke

  4. Penanganan pengecualian PL/SQL:tidak melakukan apa pun (abaikan pengecualian)

  5. Pertanyaan SQL hierarkis