Postgres 참조 무결성 오류 이해
Postgres(버전 9.1 이상)에서 데이터베이스 구조를 구축할 때 다음 오류가 발생할 수 있습니다.
<code>ERROR: there is no unique constraint matching given keys for referenced table "bar"</code>
이 오류는 데이터베이스 일관성의 중요한 측면인 Postgres의 참조 무결성 시행으로 인해 발생합니다. 원인과 해결방안을 분석해보겠습니다.
참조 무결성 및 외래 키
참조 무결성은 관련 테이블 간의 데이터 일관성을 보장합니다. 외래 키 관계는 테이블 간의 링크를 설정합니다. 예를 들어 bar
테이블에 foo_fk
테이블의 name
열을 참조하는 외래 키 foo
가 있는 경우 참조 무결성은 foo_fk
의 모든 bar
값이 name
의 기존 foo
값과 일치해야 함을 규정합니다.
고유제약의 역할
name
참조 무결성을 유지하기 위해 Postgres에서는 참조 열(foo
테이블의 name
)에 고유 제약 조건을 적용해야 합니다. 이 제약 조건은 foo
의 각
오류 원인: 고유 제약 조건 누락
name
오류 메시지는 외래 키가 참조하는 열에 고유 제약 조건이 누락되었음을 나타냅니다. foo
의 foo_fk
열에 고유 제약 조건이 없으면 Postgres는 bar
의 foo
값을
오류 해결: 고유 제약 조건 추가
ALTER TABLE
해결 방법은 간단합니다. 참조 열에 고유 제약 조건을 추가하면 됩니다. SQL에서는 ADD CONSTRAINT
및
<code class="language-sql">ALTER TABLE foo ADD CONSTRAINT foo_name_unique UNIQUE (name);</code>
name
이러한 추가 기능은 foo
의
위 내용은 외래 키를 생성할 때 Postgres에서 '주어진 키와 일치하는 고유 제약 조건 없음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!