У меня следующая проблема: я хочу получить максимальное значение идентификаторов в моей таблице в первом запросе и следующее значение max_id + 1 для второго запроса вставки.Как это сделать?
У меня есть следующий код, он работает для меня, но я хочу использовать функцию 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) внутри значения во втором запросе?