2017-11-26 18 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"。それはではなく、スキーマ修飾名です。

関連する問題