Sobes.tech
Senior

Kaip pridėti unikalumo apribojimą PostgreSQL dviejų stulpelių deriniui, kur atskiri reikšmės gali kartotis, bet poros — ne?

sobes.tech AI

Atsakymas iš AI

PostgreSQL, siekiant užtikrinti dviejų stulpelių reikšmių unikalumą, taikomas UNIQUE apribojimas šiai stulpelių porai. Tai užtikrina, kad kiekviena reikšmių pora bus unikali, net jei atskiri stulpelių reikšmės kartosis.

SQL užklausos pavyzdys:

ALTER TABLE jūsų_lentelės_pavadinimas
ADD CONSTRAINT unique_col1_col2 UNIQUE (stulpelis1, stulpelis2);

Jei lentelė kuriama nuo nulio, apribojimą galima iš karto nurodyti:

CREATE TABLE jūsų_lentelės_pavadinimas (
    id SERIAL PRIMARY KEY,
    stulpelis1 TYP,
    stulpelis2 TYP,
    -- kiti stulpeliai
    CONSTRAINT unique_col1_col2 UNIQUE (stulpelis1, stulpelis2)
);

Taip duomenų bazė neleis įterpti eilučių su pasikartojančia reikšmių kombinacija šiuose dviejuose stulpeliuose.