PostGIS에서 고유 ID로 뷰를 만들 수 있습니까? PostGIS 테이블의 “gid”필드처럼? 편집 :

PostGIS에서 뷰를 만들 때 해당 뷰에 고유 ID를 추가 할 수있는 방법이 있습니까? 다른 PostGIS 테이블의 “gid”필드처럼?

편집 : 원본 게시물에 이것을 포함시켜야합니다. PostGresql 9.0 및 PostGIS 1.5를 사용하고 있습니다.

안도



답변

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을 포함한 대부분의 데이터베이스에서 작동합니다.


답변

이전 버전의 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;


답변