📅  最后修改于: 2023-12-03 15:33:45.860000             🧑  作者: Mango
在关系型数据库中,约束是用来限制数据插入、更新或删除的规则。PostgreSQL提供了多种约束类型,可以根据需求来选择适合的约束类型。
NOT NULL约束用于限制列的值不能为NULL。当试图插入NULL值时,会抛出异常。
CREATE TABLE example (
id serial PRIMARY KEY,
name varchar(50) NOT NULL
);
UNIQUE约束用于限制列的值必须唯一。当试图插入重复的值时,会抛出异常。
CREATE TABLE example (
id serial PRIMARY KEY,
email varchar(255) UNIQUE
);
PRIMARY KEY约束用于指定表的主键。主键是一列或多列的组合,用于唯一标识一条记录。主键列的值不能为NULL,且必须唯一。
CREATE TABLE example (
id serial PRIMARY KEY,
name varchar(50),
email varchar(255) UNIQUE
);
FOREIGN KEY约束用于指定表之间的关系。当一个表的列引用了另一个表的主键时,可以使用FOREIGN KEY约束。FOREIGN KEY约束要求被引用表的列必须具有一个UNIQUE约束或PRIMARY KEY约束。
CREATE TABLE orders (
id serial PRIMARY KEY,
product_id integer REFERENCES products(id),
quantity integer
);
CREATE TABLE products (
id serial PRIMARY KEY,
name varchar(50) NOT NULL,
price decimal(10,2) NOT NULL
);
CHECK约束用于指定列的数据必须满足的条件。当数据不满足条件时,会抛出异常。
CREATE TABLE example (
id serial PRIMARY KEY,
name varchar(50),
age integer CHECK (age >= 18)
);
以上就是PostgreSQL提供的常用约束类型。在设计表结构时,合理使用约束可以保证数据的完整性和一致性。