📅  最后修改于: 2023-12-03 14:45:35.519000             🧑  作者: Mango
身份列(Identity Column)是 PostgreSQL 数据库中的一种列类型,可用于自动生成唯一标识符,以确保表中每一行都具有唯一的标识符。
在 PostgreSQL 中,可以使用以下语法创建身份列:
CREATE TABLE table_name (
column_name data_type GENERATED ALWAYS AS IDENTITY
(START WITH start_value INCREMENT BY increment_value
[ MINVALUE min_value | NO MINVALUE ]
[ MAXVALUE max_value | NO MAXVALUE ]
[ CYCLE | NO CYCLE ] )
)
其中,table_name
是要创建的表名,column_name
是要创建的身份列的名称,data_type
是身份列的数据类型(通常使用 bigint
),start_value
是起始值,increment_value
是增量值,min_value
和 max_value
是身份列可以取得的最小值和最大值。
例如,要创建一个名为 users
的表,其中包含一个身份列 id
,其起始值为 1,每次增加 1,可以使用以下语法:
CREATE TABLE users (
id bigint GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
name text,
age integer
);
插入数据时,可以不指定身份列的值,PostgreSQL 会自动生成唯一的标识符。
例如,要向上面创建的 users
表中插入一行数据,可以使用以下语法:
INSERT INTO users (name, age) VALUES ('Alice', 25);
在创建表后,还可以使用 ALTER TABLE
语句修改身份列的属性。
例如,要将上述 users
表中的 id
列的起始值改为 100,可以使用以下语法:
ALTER TABLE users ALTER COLUMN id RESTART WITH 100;
身份列是 PostgreSQL 数据库中一种非常有用的特性,可用于自动生成唯一标识符,从而确保表中每一行都具有唯一的标识符。通过使用身份列,开发人员可以更加轻松地管理数据库表。