Let’s say we have a bank. Our bank wants to give each account for each user a unique name, for instance, “Personal” or “Checking.” How can we make sure each account has a unique name for each user?
Add unique constraint when create a new table:
CREATE TABLE directors ( id SERIAL PRIMARY KEY, name VARCHAR(100) UNIQUE NOT NULL )
Change existing table, modify one field to be unique:
ALTER TABLE directors ADD CONSTRAINT directors_name_unique UNIQUE(name)
So now if we trying to insert the duplicate rows it will report error:
INSERT INTO directors (name) VALUES ('Quintin Tarantino'), ('Quintin Tarantino') ;
Sometime, the unique constraint can be a combination of mulit fields:
ALTER TABLE movies ADD CONSTRAINT unique_title_and_release UNIQUE(title, release-date)