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

Batasan nilai unik di beberapa kolom

Anda tidak dapat dengan mudah melakukan ini. least() /greatest() pendekatan tidak akan berhasil dalam semua kasus.

Postgres memang memiliki beberapa operasi indeks mewah. Tetapi cara terbaik adalah dengan menggunakan meja persimpangan. Misalnya:

create table userPhones (
    userPhoneId bigint primary key ,
    userId bigint references users(id),
    phone_counter int check (phone_counter in (1, 2)),
    phone varchar,
    unique (userId, phone_counter),
    unique(phone)
);

Ini juga membatasi jumlah nomor telepon menjadi 2 untuk setiap pengguna.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pembuatan docker bergantung pada tidak menunggu hingga layanan yang bergantung belum sepenuhnya dimulai

  2. Bagaimana cara kerja COPY dan mengapa ini jauh lebih cepat daripada INSERT?

  3. Kolom duplikat setelah beralih dari tipe data serial ke identitas di PostgreSQL / pgAdmin4

  4. Postgresql dalam database memori Django

  5. Bisakah Anda membuat indeks dalam definisi CREATE TABLE?