Một rằng buộc duy nhất (UNIQUE Constraint) để đảm bảo dữ liệu trong 1 cột (column) là duy nhất trong bảng CSDL. Khi thực hiện insert hoặc update dữ liệu, nó sẽ tiến hành kiểm tra xem dữ liệu được thêm vào hay cập nhật có tồn tại hay không. Nếu đã tồn tại dữ liệu thì sẽ báo lỗi.
Khi bạn thêm một ràng buộc duy nhất vào một cột hoặc một nhóm cột, PostgreSQL sẽ tự động tạo một chỉ mục (Unique index) trên cột tương ứng hoặc một nhóm các cột tương ứng.
Định nghĩa rằng buộc duy nhất (UNIQUE Constraint) khi tạo mới 1 bảng
Định nghĩa rằng buộc sử dụng cho 1 cột
Cú pháp lệnh:
CREATE TABLE <table_name> ( <column_name> <data_type> UNIQUE );
Ví dụ: Tạo bảng username có cột username có rằng buộc duy nhất Unique
CREATE TABLE users ( user_id serial NOT NULL PRIMARY KEY, username character varying UNIQUE, password character varying, email character varying, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone );
Bây giờ chúng ta thực hiện insert 2 lần với câu SQL Query sau:
INSERT INTO users (username, created_at) VALUES ('admin', '2019-01-01 00:00:00');
Kết quả lần insert thứ 2 sẽ báo lỗi vì bị trùng lặp dữ liệu
Định nghĩa rằng buộc sử dụng cho 1 nhóm các cột
Cú pháp lệnh:
CREATE TABLE <table_name> ( <column_name_1> <data_type> <column_name_2> <data_type> UNIQUE(column_name_1, column_name_2) );
Khi đó giá trị của 2 column_name_1 và column_name_2 sẽ là duy nhất khi dữ liệu của chúng cùng duy nhất.
Nguồn: vinasupport.com