집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 '참조 테이블 'bar'에 대한 고유 제약 조건 없음'이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
PostgreSQL 오류 디코딩: "참조 테이블 'bar'에 대한 고유 제약 조건이 없습니다."
PostgreSQL 9.1 사용자는 상호 연결된 테이블을 구축할 때 다음과 같은 당황스러운 오류에 자주 직면합니다. "참조 테이블 "bar"에 대해 지정된 키와 일치하는 고유 제약 조건이 없습니다." 이 가이드에서는 근본 원인과 해결 방법을 설명합니다.
이 오류는 일반적으로 테이블(예: foo
, bar
, baz
)이 외래 키를 통해 연결될 때 발생합니다. 예를 들어 bar
는 외래 키(foo
)를 사용하여 foo_fk
를 참조하고 baz
는 다른 외래 키(bar
)를 사용하여 bar_fk
를 참조할 수 있습니다.
문제는 bar
테이블에 있습니다. 결합된 열(예: foo_fk
및 name
)에 고유 인덱스가 존재할 수 있지만 name
열 자체에는 고유 제약 조건이 없습니다.
다음 시나리오를 고려해 보세요. bar
의 두 행이 동일한 name
값(예: 'ams')을 공유합니다. baz
의 'ams'를 참조하여 bar_fk
에 행을 삽입하려고 하면 모호해집니다. PostgreSQL이 올바른 bar
행을 결정할 수 없어 오류가 발생합니다.
해결책: 고유성 강화
수정 방법은 간단합니다. name
테이블의 bar
열에 고유 제약 조건을 추가하면 됩니다. 다음 SQL 명령을 사용하세요.
<code class="language-sql">ALTER TABLE bar ADD UNIQUE (name);</code>
이렇게 하면 각 bar
행에 고유한 name
이 있어 모호성이 해결되고 성공적인 외래 키 관계가 가능해집니다. 이제 테이블 구조가 의도한 대로 작동합니다.
위 내용은 PostgreSQL에서 '참조 테이블 'bar'에 대한 고유 제약 조건 없음'이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!