如何在PostgreSQL中使用非公共模式添加外键?
我正在尝试使用此psql命令添加外键:如何在PostgreSQL中使用非公共模式添加外键?,postgresql,foreign-keys,database-schema,ddl,Postgresql,Foreign Keys,Database Schema,Ddl,我正在尝试使用此psql命令添加外键: 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 «pr
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
代码为42P01(未定义的表格)
我的数据库是:places\u local
我的模式是:prestamos\u bienes
我的表格是:bienes和marcas标识符“prestamos\u 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\u prestamos\u bienes.marcas\u id\u marca\u fk”
。这也是而不是模式限定名