暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB-PG原理解读——Sequence 使用、原理全面解析(四)

PolarDB农夫山泉 2023-08-29
140

PolarDB PostgreSQL版(以下简称 PolarDB-PG)是一款阿里云自主研发的企业级数据库产品,采用计算存储分离架构,兼容 PostgreSQL 与 Oracle。PolarDB-PG 的存储与计算能力均可横向扩展,具有高可靠、高可用、弹性扩展等企业级数据库特性。同时,PolarDB-PG 具有大规模并行计算能力,可以应对 OLTP 与 OLAP 混合负载;还具有时空、向量、搜索、图谱等多模创新特性,可以满足企业对数据处理日新月异的新需求。

Sequence 组合使用场景

SEQUENCE 除了作为一个独立的对象时候以外,还可以组合其他 PostgreSQL 其他组件进行使用,我们总结了一下几个常用的场景。

组合调用

显式调用

CREATE SEQUENCE seq; CREATE TABLE tbl (i INTEGER PRIMARY KEY); INSERT INTO tbl (i) VALUES (nextval('seq')); SELECT * FROM tbl ORDER BY 1 DESC; tbl --------- 1 (1 row)
复制

触发器调用

CREATE SEQUENCE seq; CREATE TABLE tbl (i INTEGER PRIMARY KEY, j INTEGER); CREATE FUNCTION f() RETURNS TRIGGER AS $$ BEGIN NEW.i := nextval('seq'); RETURN NEW; END; $$ LANGUAGE 'plpgsql'; CREATE TRIGGER tg BEFORE INSERT ON tbl FOR EACH ROW EXECUTE PROCEDURE f(); INSERT INTO tbl (j) VALUES (4); SELECT * FROM tbl; i | j ---+--- 1 | 4 (1 row)
复制

DEFAULT 调用

显式 DEFAULT 调用:

CREATE SEQUENCE seq; CREATE TABLE tbl(i INTEGER DEFAULT nextval('seq') PRIMARY KEY, j INTEGER); INSERT INTO tbl (i,j) VALUES (DEFAULT,11); INSERT INTO tbl(j) VALUES (321); INSERT INTO tbl (i,j) VALUES (nextval('seq'),1); SELECT * FROM tbl; i | j ---+----- 2 | 321 1 | 11 3 | 1 (3 rows)
复制

SERIAL 调用:

CREATE TABLE tbl (i SERIAL PRIMARY KEY, j INTEGER); INSERT INTO tbl (i,j) VALUES (DEFAULT,42); INSERT INTO tbl (j) VALUES (25); SELECT * FROM tbl; i | j ---+---- 1 | 42 2 | 25 (2 rows)
复制

注意,SERIAL 并不是一种类型,而是 DEFAULT 调用的另一种形式,只不过 SERIAL 会自动创建 DEFAULT 约束所要使用的 Sequence。

AUTO_INC 调用

CREATE TABLE tbl (i int GENERATED ALWAYS AS IDENTITY, j INTEGER); INSERT INTO tbl(i,j) VALUES (DEFAULT,32); INSERT INTO tbl(j) VALUES (23); SELECT * FROM tbl; i | j ---+---- 1 | 32 2 | 23 (2 rows)
复制

AUTO_INC 调用对列附加了自增约束,与 default 约束不同,自增约束通过查找 dependency 的方式找到该列关联的 Sequence,而 default 调用仅仅是将默认值设置为一个 nextval 表达式。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论