postgresql 데이터베이스에 세 개의 테이블, 즉 tec_configurations, tep_cores 및 tep2tec_bindings가 있습니다. 테이블 tec2tep_bindings는 처음 두 테이블의 기본 키 필드를 참조합니다. 테이블 당 관련 create 문은 아래 SQL 스 니펫 2,3 및 4에 나열되어 있습니다. 아래의 첫 번째 스 니펫에 표시된 오류가 발생합니다. 이 오류를 해결할 수있는 방법을 알려주십시오. 테이블 TEC_CONFIGURATIONS의 'id'필드는 기본 키이기 때문에 이미 고유합니다. 따라서이 오류 메시지가 표시되는 이유는 없습니다.고유 필드 - 주어진 키와 일치하는 고유 제한 조건 없음
SNIPPET 1 (에러 메시지)
ERROR: there is no unique constraint matching given keys for referenced table
"tec_configurations"
SNIPPET 2 (표 tec_configurations)
CREATE TABLE IF NOT EXISTS TEC_CONFIGURATIONS (
ID SERIAL PRIMARY KEY,
TEC_ID INT NOT NULL,
HANDLER_MAC TEXT NOT NULL,
PRIMARY_MAC TEXT,
SECONDARY_MAC TEXT,
TERTIARY_MAC TEXT,
EXPECTED_FLOWS INT DEFAULT 0,
VERSION INT DEFAULT 0,
UUID TEXT DEFAULT NULL);
SNIPPET 3 (표 tep_cores)
CREATE TABLE IF NOT EXISTS TEP_CORES (
ID SERIAL PRIMARY KEY,
MAC TEXT,
UUID TEXT,
CORE_NO INT DEFAULT 0);
SNIPPET 4 create table if not exists
오히려 create table
보다 발행하고 있기 때문에 (표 tec2tep_bindings)
CREATE TABLE IF NOT EXISTS TEC2TEP_BINDINGS (
ID SERIAL PRIMARY KEY,
TEC_ID_FK INT NOT NULL REFERENCES TEC_CONFIGURATIONS(ID),
TEP_CORE_ID_FK INT NOT NULL REFERENCES TEP_CORES(ID),
REPLICA_RANK INT DEFAULT 0);
PostgreSQL 9.1에서는 재현 할 수 없습니다. 어떤 버전을 사용하고 있습니까? –