📅  最后修改于: 2023-12-03 15:36:53.945000             🧑  作者: Mango
在 PostgreSQL 中,创建表时通过主键来保证表的数据完整性和高效性。主键用于唯一标识每一条记录,并且主键值在整个表中是唯一的。
在创建表的 SQL 语句中,通过 PRIMARY KEY
关键字来定义主键。下面是一个例子:
CREATE TABLE employees (
id BIGINT PRIMARY KEY,
name TEXT,
age INT,
salary FLOAT
);
在这个例子中,我们定义了一个名为 employees
的表,该表包含了 id
、name
、age
和 salary
四个列。其中,id
列被定义为主键。PRIMARY KEY
关键字告诉 PostgreSQL 将 id
列设置为主键。
定义主键时,实际上是在表的列上添加了一个约束。主键约束有以下几个特点:
如果尝试在主键列上插入一个重复的值,或者在主键列上插入 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
关键字来定义主键。如果希望主键值能够自动增长,可以使用序列来实现。