我有一张超过百万行的桌子.我需要重置序列,并用新值(1、2、3、4…等等)重新分配id列.有什么简单的方法吗?

推荐答案

如果不想保留ID的顺序,那么可以

ALTER SEQUENCE seq RESTART WITH 1;
UPDATE t SET idcolumn=nextval('seq');

我怀疑有没有一种简单的方法可以在不重新创建整个桌子的情况下,按照您 Select 的顺序来做.

Postgresql相关问答推荐

PostgreSQL数据文件是否仅在判断点期间写入磁盘?

使用pg_repack从PostgreSQL中的表中删除OID

在Axum 0.5中,如何在一个请求处理程序中同时使用数据库和路径解析?

postgres 不同类型的更新

在 Windows 上使用 rsync 进行 Postgresql 副本升级

如何在docker-compose中使用docker secrets设置ConnectionString?

气流数据库如何定期管理?

Postgres 转储按顺序插入

postgresql 更新错误ERROR: invalid input syntax for type boolean:

在psql中,为什么有些命令没有效果?

并发刷新materialized视图

如何让 Rails 使用 SSL 连接到 PostgreSQL?

无法识别的配置参数bytea_output

我应该同时指定 INDEX 和 UNIQUE INDEX 吗?

Select 中的 PostgreSQL 正则表达式捕获组

如何使用 postgresql 中的存储过程将数据插入表中

获取 psycopg2 count(*) 结果数

在 PostgreSQL 中跳过每 n 个结果行

我应该在 Django DATABASE ENGINE 中使用哪个 Postgres 值?

postgresql中的移动平均线