错误:没有唯一约束匹配引用表“grupo_cliente”的给定键

时间:2016-12-09 18:58:43

标签: node.js sequelize.js

OLA


Estou tentando criar um relacionamento entre duas tabelas com chaves compostas,estou utilizando Node.js com Sequelize。
Quando executo o teste do sistema,el​​e tenta criar duas foreign key,sendo que deveria criar apenas uma foreign key composta com dois campos。
Exemplificando
Tabela(grupo_cliente)com(idGrupo,idCliente)PK composta
Tabela(pedido)com(idGrupo,idCliente)FK composta com(idGrupo,idCliente)da tabela grupo_cliente。
Abaixo Script com erro。

{
idcliente: {
  type: DataType.INTEGER,
  allowNull: false,
  field: 'idcliente',
  references: {
    model: 'grupo_cliente',
    key: 'idcliente',
    foreignKey: 'teste1'
  }
},
idgrupo: {
  type: DataType.INTEGER,
  allowNull: true,
  field: 'idgrupo',
  references: {
    model: 'grupo_cliente',
    key: 'idgrupo',
    foreignKey: 'teste1'
  }
},
...
}

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,如下所示,使用原生查询。

module.exports = { up, down };

async function up (db) {
  await db.sequelize.query('ALTER TABLE public.pedido ADD CONSTRAINT pedido_idcliente_idgrupo_fkey FOREIGN KEY (idcliente, idgrupo) REFERENCES public.grupo_cliente (idcliente, idgrupo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;');
}

async function down (db) {
  await db.sequelize.query('ALTER TABLE public.pedido DROP CONSTRAINT pedido_idcliente_idgrupo_fkey;');
}

谢谢:)