我有以下问题: 我想在第一个查询中获取表中id的最大值,然后将max_id + 1值传递给第二个插入查询。 怎么做?
我有以下代码,它对我有用,但我想在第二个查询中使用call getMaxId函数使getMaxId()更通用
var max_id=0;
function getMaxId(table_name) {
db.one(`SELECT MAX(id) FROM ${table_name}`)
.then(data => {
logger.info('max id: ' + data.max + ' ' + (data.max + 1));
max_id = data.max+1
return data.max+1
})
}
getMaxId('restaurant_calendar');
it('should add restaurant calendar record for dine_in (restaurant_calendar)', () => {
queryText3 = `INSERT INTO restaurant_calendar (id, valid_date, valid_all_day, from_hour, to_hour, created_by, created_at, is_active, delivery_type, order_source )
VALUES (${max_id}, '${utils.getTodayDate()}', TRUE, '','', 'mk', '2019-01-14 10:13:11.815+00', TRUE, 'DINE_IN', 'ALL' )`
return db.none(queryText3)
.then(data => { console.log(queryText3); })
.catch(error => { console.log('ERROR:', error, ' ', queryText3); });
});
因此,如果我将getMaxId('restaurant_calendar')而不是{max_id}作为值,则会得到未定义的值而不是max_id。 在第二个查询中的值内插入getMaxId(table_name)调用的最佳方法是什么?