📜  PostgreSQL-约束(1)

📅  最后修改于: 2023-12-03 15:33:45.860000             🧑  作者: Mango

PostgreSQL约束

在关系型数据库中,约束是用来限制数据插入、更新或删除的规则。PostgreSQL提供了多种约束类型,可以根据需求来选择适合的约束类型。

NOT NULL约束

NOT NULL约束用于限制列的值不能为NULL。当试图插入NULL值时,会抛出异常。

CREATE TABLE example (
  id serial PRIMARY KEY,
  name varchar(50) NOT NULL
);
UNIQUE约束

UNIQUE约束用于限制列的值必须唯一。当试图插入重复的值时,会抛出异常。

CREATE TABLE example (
  id serial PRIMARY KEY,
  email varchar(255) UNIQUE
);
PRIMARY KEY约束

PRIMARY KEY约束用于指定表的主键。主键是一列或多列的组合,用于唯一标识一条记录。主键列的值不能为NULL,且必须唯一。

CREATE TABLE example (
  id serial PRIMARY KEY,
  name varchar(50),
  email varchar(255) UNIQUE
);
FOREIGN KEY约束

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约束

CHECK约束用于指定列的数据必须满足的条件。当数据不满足条件时,会抛出异常。

CREATE TABLE example (
  id serial PRIMARY KEY,
  name varchar(50),
  age integer CHECK (age >= 18)
);

以上就是PostgreSQL提供的常用约束类型。在设计表结构时,合理使用约束可以保证数据的完整性和一致性。