p_id p_type name
----------------------------------
100 Y hong
101 Y kim
200 N park
201 N John
我想在测试表中插入“ 102 Y choi”。
mysql查询
insert into test(p_id,p_type,name)
select (max(p_id)+1),'Y','choi' from test where p_type='Y'
sequelize中的等效查询是什么?
答案 0 :(得分:0)
除了在事务中进行两个查询外,我看不到其他任何选择:
sequelize.transaction(t => {
Test.findAll({
order: [['p_id', 'DESC']],
where: { p_type: 'Y' },
limit: 1
}, {transaction: t}).then(maxTest=>{
const max = (maxTest[0] || {p_id: 0}).p_id + 1;
return Test.create({
p_id: max,
p_type: 'Y',
name: 'choi'
}, {transaction: t})
})
})