Sobes.tech
Senior

Как да добавите ограничение за уникалност в PostgreSQL за комбинация от две колони, където отделните стойности могат да се повтарят, но двойките — не?

sobes.tech AI

Отговор от AI

В PostgreSQL, за да се гарантира уникалността на комбинацията от стойности на две колони, се използва ограничението UNIQUE върху тази двойка колони. Това гарантира, че всяка двойка стойности ще бъде уникална, дори ако отделните стойности в колоните могат да се повтарят.

Пример на SQL заявка:

ALTER TABLE името_на_вашата_таблица
ADD CONSTRAINT unique_col1_col2 UNIQUE (колона1, колона2);

Ако таблицата се създава наново, може веднага да се посочи ограничението:

CREATE TABLE името_на_вашата_таблица (
    id SERIAL PRIMARY KEY,
    колона1 TИП,
    колона2 TИП,
    -- други колони
    CONSTRAINT unique_col1_col2 UNIQUE (колона1, колона2)
);

По този начин базата данни няма да позволи вмъкването на редове с повтаряща се комбинация от стойности в тези две колони.