📜  创建表 postgresql 主键 - SQL (1)

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

创建表 PostgreSQL 主键 - SQL

在 PostgreSQL 中,创建表时通过主键来保证表的数据完整性和高效性。主键用于唯一标识每一条记录,并且主键值在整个表中是唯一的。

创建表时定义主键

在创建表的 SQL 语句中,通过 PRIMARY KEY 关键字来定义主键。下面是一个例子:

CREATE TABLE employees (
    id BIGINT PRIMARY KEY,
    name TEXT,
    age INT,
    salary FLOAT
);

在这个例子中,我们定义了一个名为 employees 的表,该表包含了 idnameagesalary 四个列。其中,id 列被定义为主键。PRIMARY KEY 关键字告诉 PostgreSQL 将 id 列设置为主键。

主键约束

定义主键时,实际上是在表的列上添加了一个约束。主键约束有以下几个特点:

  • 主键列的值必须是唯一的;
  • 主键列的值不能为空,即不能为 NULL;
  • 每张表最多只能有一个主键。

如果尝试在主键列上插入一个重复的值,或者在主键列上插入 NULL 值,PostgreSQL 将会抛出一个错误。

自动增长序列

通常情况下,我们希望主键值能够自动增长,而不需要每次手动指定一个唯一的值。在 PostgreSQL 中,可以通过序列来实现主键的自动增长。

序列是一个对象,它包含一个可以自增的计数器。在创建表时,可以创建一个序列,并将其与主键列关联起来,用于自动为主键列生成唯一的值。下面是一个例子:

CREATE SEQUENCE employee_id_seq;

CREATE TABLE employees (
    id BIGINT DEFAULT nextval('employee_id_seq') PRIMARY KEY,
    name TEXT,
    age INT,
    salary FLOAT
);

在这个例子中,我们创建了一个名为 employee_id_seq 的序列,并将其与 id 列关联起来。当插入新的记录时,PostgreSQL 将自动为 id 列生成一个唯一的、自增的值。

总结

在 PostgreSQL 中,主键用于唯一标识每一条记录,并且主键值在整个表中是唯一的。主键约束要求主键列的值不能为空,并且必须是唯一的。在创建表时可以通过 PRIMARY KEY 关键字来定义主键。如果希望主键值能够自动增长,可以使用序列来实现。