回答:
ビューの列としてrow_number()関数を使用できるはずです。これは、Postgres 8.4以降で機能します。
http://www.postgresql.org/docs/current/static/functions-window.html
SELECT * FROM
( SELECT
ROW_NUMBER() OVER (ORDER BY column_to_sort_by ASC) AS ROW_NUMBER,
Col1, Col2
FROM table_name
) myview_name
これは、SQL Server、Oracle、MySQLを含むほとんどのデータベースで動作するはずです。
row_number() OVER() AS "id"
なしORDER
で行うこともできます
row_number
です。SELECT
特に基礎となるデータが変更された場合、s 間の一貫性に依存することはできません。
古いバージョンのPostgreSQL(<= 8.3)の場合、別のソリューションがあります。この例ではvid
、「ビューID」に別の列名を使用しています。
まず、シーケンスを作成します。CYCLE
シーケンスの最後に到達した場合にループするように使用します。
CREATE SEQUENCE myview_vid_seq CYCLE;
次に、シーケンスを使用するVIEWを作成します。
CREATE OR REPLACE VIEW myview AS
SELECT nextval('myview_vid_seq'::regclass) AS vid, mytable.*
FROM mytable;