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