【PostgreSQL】约束-主键

【PostgreSQL】约束链接

检查
唯一
主键
外键
排他

主键

主键(Primary Key)是数据库表中用于唯一标识每一行记录的字段。主键具有以下特点:

  • 唯一性:每个主键值在表中是唯一的,不允许出现重复值。
  • 非空性:主键字段的值不能为空,即主键字段不能为null。
  • 不可更改性:一旦主键值被分配给某行记录,就不能再修改。

主键在数据库中起到了索引的作用,可以提高查询效率。通常,数据库表的每一行记录都应该有一个主键字段。常见的主键类型包括自增长整数(如自增长的ID字段)、GUID(全局唯一标识符)等。

主键约束指示一列或一组列可用作表中行的唯一标识符。这要求值既是唯一的,又不是 null。因此,以下两个表定义接受相同的数据:

PostgreSQL中的主键

PostgreSQL中的主键是用于唯一标识表中记录的一列或一组列。主键具有以下特点:

  • 主键必须是唯一的,每个记录必须有一个唯一的主键值。
  • 主键不能为NULL,每个记录必须有一个非空的主键值。
  • 主键可以由一列或多列组成。
  • 主键可以用来引用其他表中的记录(外键)。
  • 主键值由数据库自动生成或由用户指定。
CREATE TABLE products (
    product_no integer UNIQUE NOT NULL,
    name text,
    price numeric
);
CREATE TABLE products (
    product_no integer PRIMARY KEY,
    name text,
    price numeric
);

主键可以跨越多个列;语法类似于 Unique Constraints:

CREATE TABLE example (
    a integer,
    b integer,
    c integer,
    PRIMARY KEY (a, c)
);

添加主键将自动在主键中列出的列或列组上创建唯一的 B 树索引,并强制标记这些列NOT NULL。

一个表最多可以有一个主键。(可以有任意数量的唯一和非空约束,它们在功能上几乎相同,但只能将一个约束标识为主键。关系数据库理论规定每个表都必须有一个主键。PostgreSQL 不强制执行此规则,但通常最好遵循它。

主键对于文档和客户端应用程序都很有用。例如,允许修改行值的 GUI 应用程序可能需要知道表的主键才能唯一地标识行。如果已声明主键,数据库系统还可以通过多种方式使用主键;例如,主键为引用其表的外键定义默认目标列。

除了在创建表时定义主键,还可以使用以下语法在已有的表中添加主键:

ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ...);

在上述语法中,constraint_name是主键约束的名称,column1, column2, …是主键列的名称。

使用主键可以提高数据的检索效率,并确保数据的完整性和唯一性。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DBA圈小圈

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值