Тема: mysql multi insert
Показать сообщение отдельно
  #1 (permalink)  
Старый 07.11.2020, 15:24
Интересующийся
Отправить личное сообщение для andrew76 Посмотреть профиль Найти все сообщения от andrew76
 
Регистрация: 07.11.2020
Сообщений: 16

mysql multi insert
Добрый день уважаемые форумчане!

Входные данные: Клиент передает на сервер json oбъект который содержит в себе массив вида (id, quantity, price)

Моя функция для того чтоб сделать insert этого массива в db:

static addSale(products){

        //WHERE (SELECT stock FROM prais_informations WHERE code = ) > 20;
        let quer = 'INSERT INTO `sales` (`id`, `code`, `quantity`, `price`, `sum`, `idCheck`) VALUES ?;';            

        return new Promise((resolve, reject) => {
           
        pool.getConnection((err, connection) => {
            if (err)reject(err);
            
            connection.query(quer, [products.map(item => [null, item.id, item.quantity, item.price, item.sum, 3])], (err, rows) => {
                 if (err) {
                    reject(err);
                }

                resolve(rows);
                connection.release();
            });
        });
     });
    }


Вопрос в следующем, прежде чем сделать инсерт всех строк, нужно проверить не превышает ли количество в запросе, остаток в бд, если хотя бы одна строка не удовлетворяет условию, запрос не должен быть сделан.

Вариант я вижу один, создать дополнительную функцию, которая вернет в промисе AND нескольких селектов (true/false) и в части then уже делать insert запрос.
Ответить с цитированием