PostgreSQL中序列(sequence)的使用
-- 创建序列
CREATE SEQUENCE test.my_seq01 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE;
-- 查询序列
SELECT * FROM information_schema.sequences WHERE sequence_schema = 'test' AND sequence_name = 'my_seq01' order by sequence_name ;
--修改序列的最大值
ALTER SEQUENCE test.my_seq01 MAXVALUE 9223372036854775807 ; ALTER SEQUENCE test.my_seq01 NO MAXVALUE ;
-- 获取下一个序列
SELECT nextval('my_seq01');
-- 获取当前序列(不增加序列)
SELECT currval('my_seq01');
-- 设置当前值(小心使用)
SELECT setval('my_seq01', 2000);
-- 或者
ALTER SEQUENCE my_seq01 RESTART WITH 2000;
-- 创建表并引用序列
CREATE TABLE "test"."my_table01"
(
id bigint not null default nextval('my_seq01'),
name text,
CONSTRAINT "my_table01_pkey" PRIMARY KEY ("id")
);
-- 插入数据
INSERT INTO "test"."my_table01"("name") VALUES('kate'),('wangwei'),('liuyang') ;
-- 查询数据
SELECT * FROM "test"."my_table01" ;
-- 创建表
CREATE TABLE "test"."my_table02"
(
id bigint not null,
name text,
CONSTRAINT "my_table02_pkey" PRIMARY KEY ("id")
);
-- 将序列设置为表中某个字段的默认值
ALTER TABLE "test"."my_table02" ALTER COLUMN id SET DEFAULT nextval('my_seq01');
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/19094439

浙公网安备 33010602011771号