96SEO 2026-08-01 16:05 2
PostgreSQL 的 SEQUENCE 是独立的对象。用来生成唯一递增整数,最常见的场景是为表字段提供自增主键。其实,很多开发者在实际使用中会遇到以下痛点:
nextvalcurrval 等调用。
-- 基本语法
CREATE SEQUENCE test_seq
INCREMENT BY 1 -- 步长。可设为负数实现递减
START WITH 100 -- 起始值,默认 1
MINVALUE 1
NO MAXVALUE -- 不设上限
CACHE 10 -- 缓存 10 个值,提高并发性能
NO CYCLE;-- 达到上限后不循环
-- 创建表时直接关联
CREATE TABLE test_table (
id INT PRIMARY KEY DEFAULT nextval,content TEXT
);-- 已有表添加默认值
ALTER TABLE existing_table
ALTER COLUMN id SET DEFAULT nextval;
DROP SEQUENCE IF EXISTS test_seq;-- 普通删除
DROP SEQUENCE IF EXISTS test_seq CASCADE;-- 强制删除并解除依赖
使用 ALTER SEQUENCE 可以一次性调整多个参数:

-- 重置下一个值
ALTER SEQUENCE test_seq RESTART WITH 200;-- 同时修改步长、最大/最小值、缓存等
ALTER SEQUENCE test_seq
INCREMENT BY 5
MAXVALUE 1千000
MINVALUE 10
CACHE 20
CYCLE;说起来,
-- 将序列绑定到指定表字段
ALTER SEQUENCE test_seq OWNED BY test_table.id;-- 解除绑定,使其成为独立对象
ALTER SEQUENCE test_seq OWNED BY NONE;-- 修改所有者或迁移 schema
ALTER SEQUENCE test_seq OWNER TO new_user;ALTER SEQUENCE test_seq SET SCHEMA public;
ALTER SEQUENCE test_seq RENAME TO new_test_seq;ALTER SEQUENCE new_test_seq SET SCHEMA archive;
当手动插入数据后需要让序列赶上表中的最大 ID:
SELECT setval('test_seq',0) FROM test_table));
| 函数 | 作用说明 | 示例 |
|---|---|---|
nextval | 获取下一个值并递增 | |
currval | 返回当前会话最近一次调用 nextval 的结果 | |
lastval | 返回当前会话最近一次生成的任意序列值 | |
setval第三个参数 true/false 决定是否把该值视为已被使用。SELECT setval;-- 下一次 nextval 返回 501 SELECT setval; -- 下一次 nextval 返回 500 |
- 场景:多个表共享同一序列、需要自定义步长或缓存策略。
SERIAL 本质是为字段自动创建一个 Sequence 并绑定默认值。
CREATE TABLE users ( id BIGSERIAL PRIMARY KEY,username VARCHAR NOT NULL );-- 实际等价于: -- CREATE SEQUENCE users_id_seq ...;按理说,-- ALTER TABLE users ALTER COLUMN id SET DEFAULT nextval;. 使用标准化 IDENTITY 列
IDENITY 比较符合 SQL 标准。语义更清晰,工具兼容性好。
CREATE TABLE products ( id BIGINT GENERATED ALWAYS AS IDENTITY name TEXT NOT NULL,PRIMARY KEY );
SCRIPT setval 如下:
SELECT setval('usersid seq',0) FROM users));
CREATE SEQUENCE highperfseq CACHE 1000 NO CYCLE; 缓存越大丢失风险越高:服务器异常宕机时未消费的缓存号会直接跳过导致更大的跳号。权衡业务容忍度后选择合适大小。
next val 调用。建议在维护窗口或流量低谷执行。
set val 在事务内部可回滚,用于临时调试或临时同步。 RESTART WITH 是 DDL 操作。一旦提交不可撤销,更适合永久性重置。
*这篇文章基于 PostgreSQL 官方文档及多年生产实际经验整理*
请根据自身业务场景酌情选型,并在正式环境前做好压测与备份!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback