PostgreSQL hỗ trợ nhiều loại khóa toàn vẹn dữ liệu (data integrity constraints) để đảm bảo rằng dữ liệu trong cơ sở dữ liệu là chính xác và nhất quán. Dưới đây là các loại khóa toàn vẹn dữ liệu mà PostgreSQL hỗ trợ:

1. Khóa chính (Primary Key)

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

2. Khóa ngoại (Foreign Key)

CREATE TABLE departments (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department_id INT REFERENCES departments(id)
);

3. Ràng buộc duy nhất (Unique Constraint)

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255) UNIQUE
);

4. Ràng buộc không NULL (NOT NULL Constraint)

CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price NUMERIC NOT NULL
);

5. Ràng buộc kiểm tra (CHECK Constraint)

CREATE TABLE orders (
    id SERIAL PRIMARY KEY,
    total NUMERIC CHECK (total >= 0)
);

6. Ràng buộc mặc định (DEFAULT Constraint)

CREATE TABLE tasks (
    id SERIAL PRIMARY KEY,
    status VARCHAR(20) DEFAULT 'pending'
);

Kết luận

Các loại khóa toàn vẹn dữ liệu trong PostgreSQL giúp bảo vệ dữ liệu khỏi các lỗi và bất cập, đồng thời duy trì tính chính xác và nhất quán của dữ liệu trong cơ sở dữ liệu. Việc áp dụng đúng các ràng buộc này là rất quan trọng trong quá trình thiết kế cơ sở dữ liệu.