Sobes.tech
Senior

Jak přidat v PostgreSQL omezení unikátnosti na kombinaci dvou sloupců, kde jednotlivé hodnoty se mohou opakovat, ale páry ne?

sobes.tech AI

Odpověď od AI

V PostgreSQL se k zajištění jedinečnosti kombinace hodnot dvou sloupců používá omezení UNIQUE na tento pár sloupců. To zajišťuje, že každý pár hodnot bude jedinečný, i když se jednotlivé hodnoty ve sloupcích mohou opakovat.

Příklad SQL dotazu:

ALTER TABLE vaše_jméno_tabulky
ADD CONSTRAINT unique_col1_col2 UNIQUE (sloupec1, sloupec2);

Pokud je tabulka vytvářena od začátku, lze omezení ihned specifikovat:

CREATE TABLE vaše_jméno_tabulky (
    id SERIAL PRIMARY KEY,
    sloupec1 TYP,
    sloupec2 TYP,
    -- další sloupce
    CONSTRAINT unique_col1_col2 UNIQUE (sloupec1, sloupec2)
);

Tímto způsobem databáze nedovolí vložit řádky s opakující se kombinací hodnot v těchto dvou sloupcích.