>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 '참조 테이블 'bar'에 대한 고유 제약 조건 없음'이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PostgreSQL에서 '참조 테이블 'bar'에 대한 고유 제약 조건 없음'이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-08 22:13:07546검색

Why Does PostgreSQL Throw

PostgreSQL 오류 디코딩: "참조 테이블 'bar'에 대한 고유 제약 조건이 없습니다."

PostgreSQL 9.1 사용자는 상호 연결된 테이블을 구축할 때 다음과 같은 당황스러운 오류에 자주 직면합니다. "참조 테이블 "bar"에 대해 지정된 키와 일치하는 고유 제약 조건이 없습니다." 이 가이드에서는 근본 원인과 해결 방법을 설명합니다.

이 오류는 일반적으로 테이블(예: foo, bar, baz)이 외래 키를 통해 연결될 때 발생합니다. 예를 들어 bar는 외래 키(foo)를 사용하여 foo_fk를 참조하고 baz는 다른 외래 키(bar)를 사용하여 bar_fk를 참조할 수 있습니다.

문제는 bar 테이블에 있습니다. 결합된 열(예: foo_fkname)에 고유 인덱스가 존재할 수 있지만 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.