Estou tentando criar um relacionamento entre duas tabelas com chaves compostas,estou utilizando Node.js com Sequelize。
Quando executo o teste do sistema,ele 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'
}
},
...
}
答案 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;');
}
谢谢:)