Есть функция добавления пользователя в базу
Actions.addTgUser = async (data) => {
var exist = await Actions.checkTgUserExist(data.chat.id);
if(!exist){
pg.Query('INSERT INTO tg_users (username, is_bot, language_code, first_name, date_start, chat_id) VALUES ($1, $2, $3, $4, $5, $6)', [data.from.username, data.from.is_bot, data.from.language_code, data.from.first_name, data.date, data.chat.id]);
pg.Query('INSERT INTO tg_users_settings (chat_id, bot_lang) VALUES ($1, $2)', [data.chat.id, data.from.language_code]);
pg.Query('INSERT INTO tg_users_stats (chat_id, last_active) VALUES ($1, $2)', [data.chat.id, data.date]);
}else{
Actions.updateTgUser(data);
Actions.updateTgUserLastActive(data);
}
return true;
};
Я думаю, что будет лучше для производительности, если вместо трех INSERT запросов сделать один общий? Или я не прав?
Вот только как это всё записать одним запросом?
Вот функция query
const Pool = require('pg').Pool
const pool = new Pool({
user: config.base.user,
host: config.base.host,
database: config.base.database,
password: config.base.password,
port: config.base.port,
});
Query: function (sql, values, singleItem) {
return new Promise((resolve, reject) => {
try {
pool.query(sql, values, function (err, result) {
if (err) {
reject(err);
} else {
// console.log('Результат: ', result)
resolve(singleItem ? result.rows[0] : result);
}
});
}
catch (e) {
reject(e);
}
});
},