【发布时间】:2020-09-17 23:35:04
【问题描述】:
我有以下问题:我有一个包含大量删除和插入行的表。此外,我想为表中的每个当前行分配一些 id 号。目前我正在尝试使用
DROP SEQUENCE IF EXISTS market_orders_seq
CREATE SEQUENCE market_orders_seq CACHE 1
CREATE TABLE market_orders (id int NOT NULL DEFAULT nextval('market_orders_seq') PRIMARY KEY, typ varchar(5), tag varchar(30), owner_id int, owner_tag varchar(5), amount int, price int, market_id int)
ALTER SEQUENCE market_orders_seq OWNED BY market_orders.id
但是如果我理解正确的话,序列是单调的,当我删除一些行时不能下降,所以我遇到了一个 id 被快速膨胀的问题。这个问题的解决方案是什么?我想将第一个未使用的 id 用于插入,但我不知道该怎么做。
【问题讨论】:
标签: sql postgresql primary-key sql-insert auto-increment