在此 SO 回答中: PostgreSQL:默认约束名称
看起来我的外键(在创建表时未命名)应该默认为后缀_fkey
...但似乎却默认为后缀_foreign
。这是正常的吗?
我担心创建一个迁移,其中我假设约束名称并且它在我的环境中运行,然后在其他地方中断......
有什么办法可以确保我在任何环境下正确引用约束?
更新信息:
posgres 版本:16.4
创建密钥的客户端:knex
使用的完整 FK 命令:
table.foreign('userId').references('users.id')
带 \d 的 psql:
很抱歉,我不允许发布我们代码库中的代码,因此这里是经过删节的代码:
Indexes:
"***_pkey" PRIMARY KEY, btree (id)
"***" UNIQUE CONSTRAINT, btree ("***Id", "***Id")
Foreign-key constraints:
"***_***id_foreign" FOREIGN KEY ("***Id") REFERENCES ***(id)
"***_userid_foreign" FOREIGN KEY ("userId") REFERENCES users(id) <=== the column of interest