我有一张桌子t_user
:
CREATE TABLE t_user
(
c_id bigint NOT NULL,
c_lastname character varying(255)
)
该表没有使用任何序列来生成 ID,而是在 Postgres 之外计算这些(不要问,也不关心这可能导致的问题)。现在我需要知道并填补从 0 到 1000 范围内的一些“漏洞”。
是否可以制定一个 Postgres 查询,为我提供该表中所有未使用的 ID,范围从 0 到 1000?
我有一张桌子t_user
:
CREATE TABLE t_user
(
c_id bigint NOT NULL,
c_lastname character varying(255)
)
该表没有使用任何序列来生成 ID,而是在 Postgres 之外计算这些(不要问,也不关心这可能导致的问题)。现在我需要知道并填补从 0 到 1000 范围内的一些“漏洞”。
是否可以制定一个 Postgres 查询,为我提供该表中所有未使用的 ID,范围从 0 到 1000?
这是使用 generate_series和外连接的经典案例:
SELECT i FROM t_user RIGHT JOIN generate_series(0,1000) as i ON (c_id=i)
WHERE c_id is null;