Knex(postgres)引用另一表中的一列(非唯一)。

问题描述 投票:0回答:1

table_a 有一个常规列,叫做 item_idint 类型,并且它目前没有索引。table_b 有一列叫做 item_id 我想拥有的参考 item_idtable_a

所有这些在正常情况下都是可以的,但是, table_a.item_id 不能设置唯一的索引约束,因为有的行包含相同的值。

如何才能 table_b.item_id 创建一个外键映射来引用 table_a.item_id 当我无法设置 table_a.item_id 与unique?

我如何设置一个非唯一的索引,以便我可以映射关系?

postgresql knex.js
1个回答
0
投票

你不应该需要将table_a中的item_id标记为唯一的,以使其成为一个外键。

await knex.schema.createTable('table_b', (t) => {
  t.integer('item_id').unsigned().notNullable();

  t.foreign('item_id')
   .references(`table_a.item_id`)
   .onDelete('cascade')
   .onUpdate('cascade');
});

© www.soinside.com 2019 - 2024. All rights reserved.