PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Izinkan null di kolom unik

Ini adalah kesalahpahaman.
The UNIQUE kendala tidak tepat apa maumu. Beberapa NULL nilai dapat hidup berdampingan dalam kolom yang ditentukan UNIQUE .

Panduan:

Secara umum, batasan unik dilanggar ketika ada lebih dari satu baris dalam tabel di mana nilai semua kolom yang termasuk dalam batasan sama. Namun, dua nilai nol tidak dianggap sama dalam perbandingan ini. Itu berarti bahkan dengan adanya batasan unik, dimungkinkan untuk menyimpan baris duplikat yang berisi nilai nol di setidaknya salah satu kolom dibatasi. Perilaku ini sesuai dengan standar SQL, tetapi kami telah mendengar bahwa database SQL lain mungkin tidak mengikuti aturan ini. Jadi berhati-hatilah saat mengembangkan aplikasi yang dimaksudkan untuk portabel.

Penekanan saya yang berani.

Ketahuilah bahwa tipe karakter mengizinkan string kosong ('' ), yaitu bukan sebuah NULL nilai dan akan memicu pelanggaran unik seperti nilai non-null lainnya saat dimasukkan lebih dari satu baris.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memesan hasil model bersarang yang penuh semangat di Node Sequelize

  2. Deklaratif SQLAlchemy:mendefinisikan pemicu dan indeks (Postgres 9)

  3. Apakah lebih baik menggunakan beberapa database dengan satu skema masing-masing, atau satu database dengan beberapa skema?

  4. Pengalihan penyisipan berbasis pemicu Postgres tanpa merusak RETURNING

  5. Susunan tidak bersarang dengan satu tingkat