📅  最后修改于: 2023-12-03 14:45:36.128000             🧑  作者: Mango
PostgreSQL 是一个功能强大的关系数据库管理系统,它支持自动增加列。自动增加列是一列,它提供了一个唯一的值,每次插入新行时都会自动增加。
在 PostgreSQL 中,使用序列(sequence)来创建自动增加列。序列是一些数字的生成器,它们可以用来创建唯一和连续的数字,用于自动增加列以及其他用途。
要创建序列,可以使用 CREATE SEQUENCE
命令。下面是一个示例:
CREATE SEQUENCE customers_id_seq;
这将创建一个名为 customers_id_seq
的序列。默认情况下,序列从 1 开始递增,递增步长为 1。可以使用 START
和 INCREMENT
参数指定不同的起始值和递增步长:
CREATE SEQUENCE customers_id_seq
START WITH 1000
INCREMENT BY 1;
这将创建一个从 1000 开始,每次递增 1 的序列。
要将序列与表格中的列相关联,可以在创建表格时使用 SERIAL
数据类型。SERIAL
数据类型是一个整数,它使用底层的序列来生成唯一的值,以实现自动增加。
下面是一个使用 SERIAL
数据类型的示例:
CREATE TABLE customers (
id SERIAL,
name VARCHAR(50),
email VARCHAR(100)
);
这将创建一个名为 customers
的表格,它具有一个自动增加的 id
列,以及 name
和 email
列。
当向带有自动增加列的表格中插入新行时,可以省略自动增加列。系统将使用序列自动生成唯一的值并插入该列。
下面是一个插入新行的示例:
INSERT INTO customers (name, email) VALUES ('Alice', 'alice@example.com');
这将向 customers
表格中插入一行,其中 id
列将由序列自动生成。
如果需要获取最后插入的行的 ID,可以使用 RETURNING
子句:
INSERT INTO customers (name, email) VALUES ('Bob', 'bob@example.com') RETURNING id;
这将向 customers
表格中插入一行,并返回最后插入行的 id
值。