sql >> Databáze >  >> RDS >> PostgreSQL

Jedinečné omezení hodnoty ve více sloupcích

Nemůžete to snadno udělat. least() /greatest() přístup nebude fungovat ve všech případech.

Postgres má nějaké efektní indexové operace. Ale nejlepší způsob je použít spojovací tabulku. Například:

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)
);

To také omezuje počet telefonních čísel na 2 pro každého uživatele.



  1. Jak změním datový typ pro sloupec v MySQL?

  2. Parametr číslo 2 není parametr OUT

  3. Mysql Počítání po sobě jdoucích řádků, které se shodují

  4. Webinář:Nové funkce v Postgres 12 [Následovat]