[SQL] 그것에서 상속 부모를 쿼리 할 때 행의 소스 테이블의 이름을 가져옵니다
SQL그것에서 상속 부모를 쿼리 할 때 행의 소스 테이블의 이름을 가져옵니다
나는 다른 하나에서 여러 테이블과 포스트 그레스 데이터베이스가 상속 있습니다. 나는 모든 그것의 아이들의 결과를 얻기 위해 부모 테이블에서 선택할 수 있지만 필요가 각 결과의 유래에서 테이블의 이름을 얻을 수 있습니다.
방법은 내가 단지 하나 개의 테이블을 조회하고, 어린이가 미리 결과에있을 것입니다 알고하지 않기 때문에 여기에 작동하지 않습니다 발견했다.
해결법
-
==============================
1.이미 자신을 발견처럼 tableoid를 사용하여 특정 행의 소스 테이블을 식별합니다. regclass 형에 캐스트가 자동으로 검증을 거친 스키마 현재 search_path의에 따라 필요한 실제 이름을 검색합니다.
이미 자신을 발견처럼 tableoid를 사용하여 특정 행의 소스 테이블을 식별합니다. regclass 형에 캐스트가 자동으로 검증을 거친 스키마 현재 search_path의에 따라 필요한 실제 이름을 검색합니다.
SELECT *, tableoid::regclass::text AS table_name FROM master.tbl WHERE <some_condition>;
더:
-
==============================
2.이것은 상속의 섹션에서 PostgreSQL의 문서에 나와 있습니다. 하나는 그림과 같이, 결과에 테이블 이름을 포함하는 열을 추가 pg_class에서 relname와 함께 테이블의 숨겨진 tableoid 열을 사용할 수 있습니다 :
이것은 상속의 섹션에서 PostgreSQL의 문서에 나와 있습니다. 하나는 그림과 같이, 결과에 테이블 이름을 포함하는 열을 추가 pg_class에서 relname와 함께 테이블의 숨겨진 tableoid 열을 사용할 수 있습니다 :
SELECT t.*, p.relname FROM table t, pg_class p WHERE t.tableoid = p.oid;
from https://stackoverflow.com/questions/24580352/get-the-name-of-a-rows-source-table-when-querying-the-parent-it-inherits-from by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버에서 한 달에 한 행으로 분할 날짜 범위 (0) | 2020.07.08 |
---|---|
[SQL] CTE를 사용하여 문자열 분할에 효율적인 방법 (0) | 2020.07.08 |
[SQL] Microsoft.Jet.OLEDB.4.0는 문자 변환 (0) | 2020.07.08 |
[SQL] SQL : 병합 날짜 범위 (0) | 2020.07.08 |
[SQL] SQL JDBC getgeneratedkeys 반환 열 "ID"을 (를) 찾을 수 없습니다, 열 유형의 알 수없는 (0) | 2020.07.08 |