postgresql表自增主键
在PostgreSQL中,可以使用序列(SEQUENCE)来实现表的自增主键。你可以创建一个序列,并将其与表的某一列关联,通常是整数类型的列。
以下是创建序列并将其关联到表的示例代码:
-- 创建序列
CREATE SEQUENCE my_table_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
-- 创建表,其中的主键将使用刚创建的序列
CREATE TABLE my_table (
id INT PRIMARY KEY DEFAULT nextval('my_table_id_seq'),
name VARCHAR(100)
);
-- 现在,每当你向my_table表插入新行而不指定id时,PostgreSQL将自动使用序列为新行分配一个自增的id
在上面的代码中,my_table_id_seq
是创建的序列的名称。START WITH 1
表示序列的起始值是1,INCREMENT BY 1
表示序列每次增长1。通过 DEFAULT nextval('my_table_id_seq')
,我们指定了在插入新行时如何默认生成id列的值。
当你插入新行而不指定 id
列时,PostgreSQL将自动从 my_table_id_seq
序列获取下一个值并将其用作新行的 id
。
INSERT INTO my_table (name) VALUES ('Alice'); -- 这将自动设置id为序列的下一个值
确保你的序列名与表的默认值中的序列名完全匹配。
评论已关闭