如何在 PostgreSQL 中使用非 public 模式添加外键?
How to add foreign key using a non public schema in PostgreSQL?
我正在尝试使用此 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 «prestamos_bienes.marcas»
表示:
ERROR: relation «prestamos_bienes.marcas» does not exist
PostgreSQL error 代码是 42P01 (undefined_table).
我的数据库是:places_local
我的架构是:prestamos_bienes
我的表是:bienes 和 marcas
标识符 "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"
。这也是 而不是 模式限定名称。
我正在尝试使用此 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 «prestamos_bienes.marcas»
表示:
ERROR: relation «prestamos_bienes.marcas» does not exist
PostgreSQL error 代码是 42P01 (undefined_table).
我的数据库是:places_local
我的架构是:prestamos_bienes
我的表是:bienes 和 marcas
标识符 "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"
。这也是 而不是 模式限定名称。