2017-11-26 8 views
0

나는이 psql의 명령으로 외래 키 추가하려고 :PostgreSQL에서 비공개 스키마를 사용하여 외래 키를 추가하는 방법은 무엇입니까?

places_local=> ALTER TABLE prestamos_bienes.bienes 
ADD CONSTRAINT "bienes_prestamos_bienes.marcas_id_marca_fk" 
FOREIGN KEY (id_marca) REFERENCES "prestamos_bienes.marcas" (id_marca); 

을하지만이 오류 얻을 :

ERROR: no existe la relación «prestamos_bienes.marcas» 

그것은 의미

ERROR: relation «prestamos_bienes.marcas» does not exist 

PostgreSQL error 코드는 입니다 42P01 (정의되지 않은 테이블).

내 데이터베이스입니다 : places_local

내 스키마는 다음과 같습니다 prestamos_bienes

내 테이블됩니다 bienesmarcas

답변

1

없이 "prestamos_bienes.marcas" 이름 입니다 식별자 스키마 자격.

정규화 된 이름의 각 부분은 개별적으로 인용해야합니다. 완전히

ALTER TABLE prestamos_bienes.bienes 
    ADD CONSTRAINT "bienes_prestamos_bienes.marcas_id_marca_fk" 
    FOREIGN KEY (id_marca) REFERENCES "prestamos_bienes"."marcas" (id_marca); 

또는 더 나은없이 따옴표 : 일반적으로

ALTER TABLE prestamos_bienes.bienes 
    ADD CONSTRAINT bienes_marcas_fk 
    FOREIGN KEY (id_marca) REFERENCES prestamos_bienes.marcas (id_marca); 

, 당신은 완전히 따옴표의 사용을 피해야한다.

그런 다음 외래 키 이름으로 의도 한 내용이 분명 할 수도 있습니다 : "bienes_prestamos_bienes.marcas_id_marca_fk". 또한 이 아니며 스키마 정규화 이름입니다.

관련 문제