5

我有一张桌子t_user

CREATE TABLE t_user
(
  c_id bigint NOT NULL,
  c_lastname character varying(255)
)

该表没有使用任何序列来生成 ID,而是在 Postgres 之外计算这些(不要问,也不关心这可能导致的问题)。现在我需要知道并填补从 0 到 1000 范围内的一些“漏洞”。

是否可以制定一个 Postgres 查询,为我提供该表中所有未使用的 ID,范围从 0 到 1000?

4

1 回答 1

6

这是使用 generate_series和外连接的经典案例:

SELECT i FROM t_user RIGHT JOIN generate_series(0,1000) as i ON (c_id=i)
 WHERE c_id is null;
于 2013-01-29T17:00:14.333 回答