2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.범퍼카 토토 : 문서 : 17 : 3.3. 외국 키버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

3.3. 외래 키

기억하세요날씨그리고도시테이블제2장. 다음을 고려하십시오 문제: 누구도에 행을 삽입할 수 없도록 하고 싶습니다.날씨테이블이 없는 테이블 의 일치하는 항목도시테이블. 이것을 유지라고 합니다.참조 무결성당신의 데이터. 단순하게 데이터베이스 시스템은 (만약 있다면) 먼저 구현될 것입니다. 를 보고 있다도시테이블에 일치하는 레코드가 있는지 확인한 다음 삽입하거나 새로운 것을 거부날씨기록. 이 접근 방식은 많은 문제가 있고 매우 불편합니다. 그래서포스트그레SQL이 작업을 수행할 수 있는 대상은 다음과 같습니다. 당신.

테이블의 새로운 선언은 다음과 같습니다:

테이블 도시 생성(
        city varchar(80) 기본 키,
        위치 포인트
);

CREATE TABLE 날씨(
        city varchar(80)은 도시(city)를 참조합니다.
        temp_lo 정수,
        temp_hi int,
        진짜,
        날짜 날짜
);

이제 잘못된 레코드를 삽입해 보십시오:

날씨 값에 삽입('Berkeley', 45, 53, 0.0, '1994-11-28');
오류: "weather" 테이블의 삽입 또는 업데이트가 외래 키 제약 조건 "weather_city_fkey"를 위반합니다.
세부정보: 키(도시)=(Berkeley)가 '도시' 테이블에 없습니다.

외래 키의 동작은 귀하의 요구에 맞게 미세하게 조정될 수 있습니다. 신청. 이 간단한 예를 넘어서는 것은 아닙니다. 튜토리얼이지만 참고만 하세요.PostgreSQL : 문서 : 8.3 : 토토 커뮤니티 정의12182_12366