【postgresql 基础入门】表的约束 唯一unique、非空not null、check、exclusion约束,原理机制以及多列组合约束
在PostgreSQL中,我们可以使用以下几种方式来对表中的数据进行约束:
- 唯一约束(unique):确保某一列或几列的组合不出现重复值。
- 非空约束(not null):确保某一列不能有空值(NULL)。
- 检查约束(check):对某一列或几列应用特定的条件表达式。
- 排他约束(exclusive):确保在任何时间,表中至多只有一行满足某种条件。
以下是如何在创建表时添加这些约束的示例代码:
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE, -- 唯一约束
salary DECIMAL,
age INT NOT NULL, -- 非空约束
start_date DATE CHECK (start_date >= '2000-01-01'), -- 检查约束
-- 排他约束可以通过创建唯一约束来实现,例如,只有一个员工能够是“CEO”
role VARCHAR(100) UNIQUE
);
在这个例子中,我们创建了一个名为employees
的表,其中包含email
、age
和start_date
的唯一性、非空和检查约束。同时,通过创建唯一性约束role
,我们确保了在employees
表中至多只有一个员工的role
是“CEO”。
评论已关闭