pg-обещание: использование результата первого запроса во втором запросе - PullRequest
0 голосов
/ 29 января 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...