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 ΤΥΠΟΣ,
    στήλη2 ΤΥΠΟΣ,
    -- άλλες στήλες
    CONSTRAINT unique_col1_col2 UNIQUE (στήλη1, στήλη2)
);

Έτσι, η βάση δεδομένων δεν θα επιτρέπει την εισαγωγή γραμμών με επαναλαμβανόμενο συνδυασμό τιμών σε αυτές τις δύο στήλες.