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

PostgreSQL setval() 函数

原创 游湖 2023-02-12
3055

PostgreSQL setval() 函数

PostgreSQL setval() 函数重置指定序列的当前值,并返回指定的值。

setval() 语法

这里是 PostgreSQL setval() 函数的语法:

setval(sequence_name TEXT, current_value BIGINT) -> BIGINT

setval(sequence_name TEXT, current_value BIGINT, is_called BOOLEAN) -> BIGINT

参数

sequence_name
必需的。 序列的名称。
current_value
必需的。 为序列指定的当前值。
is_called
可选的。 是否调用指定的当前值。如果为 true,则设置的当前值已被使用;如果为 false,则设置的当前值未被使用。默认值为 true

返回值

PostgreSQL setval() 函数返回第二个参数的值,即 current_value

setval() 示例

首先,让我们使用 CREATE SEQUENCE 语句创建一个简单的序列生成器 my_sequence

DROP SEQUENCE IF EXISTS my_sequence;
CREATE SEQUENCE my_sequence START 100;

这里,我们创建了一个名称为 my_sequence 序列生成器,它的起始值是 100。

然后,让我们使用 PostgreSQL nextval() 函数将序列 my_sequence 前进一位并返回最新的值:

SELECT nextval('my_sequence');

 nextval
---------
     100

然后,让我们使用下面的语句将序列 my_sequence 的当前的值设置为 200,

SELECT setval('my_sequence', 200);

 setval
--------
    200

让我们使用 PostgreSQL nextval() 函数 获取序列 my_sequence 的下一个值:

SELECT nextval('my_sequence');

 nextval
---------
     201

这里,由于前面我们使用了 setval() 函数将序列的当前值设置为 200,因此,此处的 nextval() 函数返回了 201。

当然,我们也可以让序列 my_sequence 从 200 开始,而不是从 201 开始,请使用下面的语句:

SELECT setval('my_sequence', 200, false);

 setval
--------
    200

让我们使用 PostgreSQL nextval() 函数获取序列 my_sequence 的下一个值:

SELECT nextval('my_sequence');

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

评论