Với một bảng được tạo bằng lệnh này:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Chúng tôi có thể chèn một mục nhiều lần.
Và đặc biệt, chúng ta có thể có các cột lặp lại cùng một giá trị.
Chúng tôi có thể buộc một cột chỉ có các giá trị duy nhất bằng cách sử dụng UNIQUE
ràng buộc chính:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL UNIQUE
);
Bây giờ nếu bạn cố gắng thêm ‘Flavio’ hai lần:
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');
Bạn sẽ gặp lỗi:
ERROR: duplicate key value violates unique constraint "people_name_key"
DETAIL: Key (name)=(Flavio) already exists.
Một khóa chính là một khóa duy nhất có một thuộc tính khác:đó là cách chính để chúng tôi xác định một hàng trong bảng.
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
Ví dụ:khóa chính có thể là một email trong danh sách người dùng.
Khóa chính có thể là một id
duy nhất mà chúng tôi tự động gán cho từng bản ghi.
Dù giá trị đó là gì, chúng tôi biết chúng tôi có thể sử dụng nó để tham chiếu đến một hàng trong bảng.