[SQL] PostgreSQL의 테이블은 존재하지만 가져올 때 쿼리 "관계가 존재하지 않습니다"
SQLPostgreSQL의 테이블은 존재하지만 가져올 때 쿼리 "관계가 존재하지 않습니다"
나는 테이블의 번호와 PostgreSQL의 DB를 가지고있다. I 쿼리 경우 :
SELECT column_name
FROM information_schema.columns
WHERE table_name="my_table";
나는 제대로 반환 된 열 목록을 얻을 것이다.
그러나, 나는 쿼리 :
SELECT *
FROM "my_table";
나는 오류가 발생합니다 :
(ProgrammingError) relation "my_table" does not exist
'SELECT *\n FROM "my_table"\n' {}
나는 열을 얻을 수 있지만 테이블을 쿼리 할 수없는 이유에 대한 어떤 생각? 목표 테이블을 조회 할 수있다.
해결법
-
==============================
1.당신은 스키마가 아닌 경우 공공 하나를 포함해야
당신은 스키마가 아닌 경우 공공 하나를 포함해야
SELECT * FROM <schema>."my_table"
또는 당신은 당신의 기본 스키마를 변경할 수 있습니다
SHOW search_path; SET search_path TO my_schema;
여기 테이블 스키마를 확인
SELECT * FROM information_schema.columns
예를 들어 테이블은 확인이 의지가 모두 작동하는 기본 스키마 공공에있는 경우
SELECT * FROM parroquias_region SELECT * FROM public.parroquias_region
그러나 부문 스키마를 지정 필요
SELECT * FROM map_update.sectores_point
-
==============================
2.당신은 시도 할 수 있습니다:
당신은 시도 할 수 있습니다:
SELECT * FROM public."my_table"
MY_TABLE 근처 따옴표를 잊지 마세요.
-
==============================
3.나는 테이블 이름에 따옴표를 포함했다.
나는 테이블 이름에 따옴표를 포함했다.
db=> \d List of relations Schema | Name | Type | Owner --------+-----------------------------------------------+-------+------- public | COMMONDATA_NWCG_AGENCIES | table | dan ... db=> \d COMMONDATA_NWCG_AGENCIES Did not find any relation named "COMMONDATA_NWCG_AGENCIES".
???
따옴표 :
db=> \d "COMMONDATA_NWCG_AGENCIES" Table "public.COMMONDATA_NWCG_AGENCIES" Column | Type | Collation | Nullable | Default --------------------------+-----------------------------+-----------+----------+--------- ID | integer | | not null | ...
많은 따옴표의 많은 :
db=> select ID from COMMONDATA_NWCG_AGENCIES limit 1; ERROR: relation "commondata_nwcg_agencies" does not exist LINE 1: select ID from COMMONDATA_NWCG_AGENCIES limit 1; ^ db=> select ID from "COMMONDATA_NWCG_AGENCIES" limit 1; ERROR: column "id" does not exist LINE 1: select ID from "COMMONDATA_NWCG_AGENCIES" limit 1; ^ db=> select "ID" from "COMMONDATA_NWCG_AGENCIES" limit 1; ID ---- 1 (1 row)
이것은이 덤프에서 TABLE 문이 아니라 따옴표를했다 CREATE 포스트 그레스 (11)이다 :
DROP TABLE IF EXISTS "COMMONDATA_NWCG_AGENCIES"; CREATE TABLE "COMMONDATA_NWCG_AGENCIES" ( ...
-
==============================
4.나는 포스트 그레스의 데이터가 DB를 덤프 복원 후 발생한 같은 문제가 없었다.
나는 포스트 그레스의 데이터가 DB를 덤프 복원 후 발생한 같은 문제가 없었다.
상황이 남쪽으로가는 시작 어디에 내 덤프 파일에서 아래의 명령을했다.
SELECT pg_catalog.set_config('search_path', '', false);
솔루션 :
단순히 위의 명령은 모든 공개적으로 액세스 할 수있는 스키마를 비활성화합니다.
여기 설명서에 대한 자세한 내용을 확인하십시오 https://www.postgresql.org/docs/9.3/ecpg-connect.html
from https://stackoverflow.com/questions/36753568/postgresql-tables-exists-but-getting-relation-does-not-exist-when-querying by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 쿼리는 열 값을 얻기 위해 다른 컬럼의 MAX 값과 일치? (0) | 2020.05.20 |
---|---|
[SQL] 오라클 : '= ANY ()'대 'IN ()' (0) | 2020.05.20 |
[SQL] 필터 테이블 왼쪽 가입 적용하기 전에 (0) | 2020.05.20 |
[SQL] 어떻게 바꿔 제약에 (0) | 2020.05.20 |
[SQL] 날짜 시간에서 시간을 추출 (2005 SQL 서버) (0) | 2020.05.20 |