web-dev-qa-db-ja.com

PostgreSQL-自動インクリメント列でビューを作成する

PostgreSQLテーブルがあり、新しい列を含むビューを作成する必要があります。この列は、1からNに向かう自動増分列である必要があります。

これは、レガシーデータ構造の元のスキーマに影響を与えずに実行できますか?

6
code base 5000

@deszoがユーザーOVER()を言ったように

create view foo as (
    select row_number() over (order by field), field, field2, field3 from bar
)
8

Row_numberを使用できます。最も簡単な方法は、

row_number() OVER (PARTITION BY true)

ビューにフィールド。 PARTITION BYが必要であり、「true」式を使用するのが最もパフォーマンスの高い方法です(Fabrizio Mazzoniの回答のようにソートする必要はありません)。

10
Daniel