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)
);
Έτσι, η βάση δεδομένων δεν θα επιτρέπει την εισαγωγή γραμμών με επαναλαμβανόμενο συνδυασμό τιμών σε αυτές τις δύο στήλες.