5

私はテーブルを持っていますt_user:

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

テーブルはID を生成するためにシーケンスを使用していません。代わりに、これらは Postgres の外部で計算されます (質問しないでください。また、これが引き起こす可能性のある問題について気にしないでください)。現在、0 から 1000 までの範囲にいくつかの「穴」があり、それらを把握して埋める必要があります。

そのテーブル内の未使用の ID をすべて 0 から 1000 の範囲で取得する Postgres クエリを作成することはできますか?

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 に答える