> 데이터 베이스 > MySQL 튜토리얼 > 테이블이 존재하는데도 '관계가 존재하지 않습니다'라는 메시지와 함께 내 PostgreSQL 쿼리가 실패하는 이유는 무엇입니까?

테이블이 존재하는데도 '관계가 존재하지 않습니다'라는 메시지와 함께 내 PostgreSQL 쿼리가 실패하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-20 13:41:09
원래의
829명이 탐색했습니다.

Why Does My PostgreSQL Query Fail with

PostgreSQL 쿼리 실패: "관계가 존재하지 않습니다" 오류

문제

데이터베이스 쿼리를 실행하면 테이블 이름이 올바르게 표시되는 경우에도 "관계가 존재하지 않습니다"라는 오류가 발생합니다.

솔루션

이 오류는 일반적으로 테이블 이름을 참조하는 방식에 문제가 있음을 나타냅니다. 가장 빈번한 원인은 대소문자 구분 문제입니다. PostgreSQL은 테이블 이름과 관련하여 대소문자를 구분합니다.

예를 들어 다음 쿼리는 실패합니다.

<code class="language-sql">CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!</code>
로그인 후 복사

해결책은 큰따옴표를 사용하여 테이블 이름의 대소문자를 정확히 일치시키는 것입니다.

<code class="language-sql">SELECT * FROM "SF_Bands";</code>
로그인 후 복사

스키마 검색 경로 사용

또 다른 접근 방식은 search_path을 수정하는 것입니다. 이 설정은 PostgreSQL이 데이터베이스 내에서 객체(예: 테이블)를 검색하는 순서를 지정합니다. 검색 경로에 테이블의 스키마를 추가하면 스키마를 명시적으로 지정하지 않고도 테이블을 참조할 수 있습니다.

현재 검색 경로를 확인하려면:

<code class="language-sql">SHOW search_path;</code>
로그인 후 복사

showfinder 스키마를 추가하려면(실제 스키마로 교체):

<code class="language-sql">SET search_path TO showfinder,public;</code>
로그인 후 복사

검색 경로를 조정한 후 소문자 이름을 사용하여 테이블을 쿼리할 수 있습니다.

<code class="language-sql">SELECT * FROM sf_bands;</code>
로그인 후 복사

search_path 구성에 대한 자세한 내용은 공식 PostgreSQL 설명서를 참조하세요. https://www.php.cn/link/d7323519970d0e3680ef5fa1edfe0e56

위 내용은 테이블이 존재하는데도 '관계가 존재하지 않습니다'라는 메시지와 함께 내 PostgreSQL 쿼리가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿