2017-11-26 7 views
0

Ich versuche, einen Fremdschlüssel mit diesem psql Befehl hinzuzufügen:Wie wird ein Fremdschlüssel mithilfe eines nicht öffentlichen Schemas in PostgreSQL hinzugefügt?

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); 

Aber ich bekomme diese Fehlermeldung:

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

Es bedeutet:

ERROR: relation «prestamos_bienes.marcas» does not exist 

Die PostgreSQL error Codes ist 42P01 (undefined_table).

Meine Datenbank ist: places_local

Mein Schema ist: prestamos_bienes

Meine Tabellen sind: bienes und marcas

Antwort

1

Die Kennung "prestamos_bienes.marcas" Name ist ohne ein Schemafähigkeit

Jeder Teil eines vollständig qualifizierten Namens muss einzeln angegeben werden.

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

Oder besser ohne Anführungszeichen vollständig:

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

Im Allgemeinen sollten Sie die Verwendung von doppelten Anführungszeichen vollständig vermeiden.

Dann könnte es auch klar sein, was Sie mit dem Fremdschlüssel-Namen beabsichtigten: "bienes_prestamos_bienes.marcas_id_marca_fk". Das ist auch nicht ein schemaqualifizierter Name.

Verwandte Themen