PostgreSQL(常簡稱為psql)是 PostgreSQL 數據庫管理系統(DBMS)的命令行界面。在 PostgreSQL 中,有多種數據約束可用于確保數據的完整性和準確性。以下是一些常見的數據約束:
主鍵約束(PRIMARY KEY):
唯一約束(UNIQUE CONSTRAINT):
檢查約束(CHECK CONSTRAINT):
外鍵約束(FOREIGN KEY CONSTRAINT):
非空約束(NOT NULL CONSTRAINT):
默認值約束(DEFAULT CONSTRAINT):
排他約束(EXCLUSIVE CONSTRAINT,PostgreSQL 中不存在,但可以通過觸發器模擬):
檢查排他約束(CHECK EXCLUSIVE CONSTRAINT,PostgreSQL 中不存在,但概念上類似于排他約束):
要創建這些約束,可以使用 PostgreSQL 的 ALTER TABLE
語句,結合相應的 ADD CONSTRAINT
子句。例如:
-- 創建一個主鍵約束
ALTER TABLE employees ADD CONSTRAINT pk_employee_id PRIMARY KEY (employee_id);
-- 創建一個唯一約束
ALTER TABLE employees ADD CONSTRAINT uk_email UNIQUE (email);
-- 創建一個檢查約束
ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary > 0);
-- 創建一個外鍵約束
ALTER TABLE departments ADD CONSTRAINT fk_department_head FOREIGN KEY (head_id) REFERENCES employees(employee_id);
-- 創建一個非空約束
ALTER TABLE employees ALTER COLUMN name SET NOT NULL;
-- 創建一個默認值約束
ALTER TABLE employees ALTER COLUMN department SET DEFAULT 'Sales';
請注意,上述示例中的某些約束(如檢查排他約束)在 PostgreSQL 中并不直接存在,但可以通過其他數據庫功能(如觸發器)來模擬實現。在實際應用中,應根據具體需求和 PostgreSQL 的功能選擇合適的約束類型。