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

Batasan unik bersyarat dengan banyak bidang di Oracle db

@jamesfrj:sepertinya Anda mencoba memastikan bahwa tabel Anda hanya berisi satu catatan yang status <>5 .

Anda dapat mencoba membuat indeks fungsional yang unik dengan menggabungkan kolom, seperti yang diberikan di bawah ini

      create table XPTO_TABLE (id number, 
                            obj_x varchar2(20),
                            date_x date,
                            type_x varchar2(20),
                            status_x varchar2(20)                              
                           );

      create unique index xpto_table_idx1 on XPTO_TABLE(case when status_x <>'5'  THEN              obj_x||date_x||type_x||STATUS_x ELSE null END);

Semoga membantu

Vishad



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan rownum dalam pernyataan SQL Oracle dalam kombinasi dengan urutan demi klausa

  2. Menambahkan kunci asing ke tabel yang ada

  3. Kumpulkan Massal Ke dan Jalankan Segera di Oracle

  4. RMAN Daftar perintah cadangan

  5. Menggunakan prosedur pl-sql atau kursor untuk memilih peringkat 3 teratas