首页 > 解决方案 > 将 VIEW 表列作为参考

问题描述

当前设置:

我正在使用 PostgreSQL、node js 和 KNEX。

存在两个表,active(task_active) 和 inactive(task_inactive),inactive 由散列分区。还有一个统一两个表的视图(任务)和一个在任务完成时将行从活动移动到非活动的工作人员。

现在,我想在另一个表 (diff) 中使用 View id 作为外键。

在此处输入图像描述 这是我的代码

import * as Knex from "knex";


export async function up(knex: Knex): Promise<any> {
await (knex.schema.createTable("diff", (t) => {
t.increments("id");
t.boolean("numeric_change_value");
t.boolean("string_change_value");
t.integer("report_pair_id")
  .notNullable()
  .references("id")
  .inTable("task")
  .onDelete("CASCADE");
}) as PromiseLike<any>);
}


export async function down(knex: Knex): Promise<any> {
 await knex.schema.dropTable("diff");
}

我收到了错误task is not a table,这个错误是正确的,因为任务就是视图。那么,有没有办法引用视图列或任何其他方法来将新表(差异)附加到任务表?如果有人有使用 SQL、MY-SQL 的解决方案,那将会很有帮助。我可以将这些查询作为我的解决方案的参考。

标签: postgresqlknex.js

解决方案


推荐阅读