Sobes.tech
Back to questions
Junior — Middle
86

Работал ли ты с механизмами управления транзакциями при выполнении SQL-запросов?

Answer from AI

sobes.tech AI

Да, в Node.js часто используются механизмы управления транзакциями при работе с базами данных, особенно с реляционными СУБД (например, PostgreSQL, MySQL).

Транзакции позволяют гарантировать атомарность операций — либо все изменения выполняются успешно, либо при ошибке откатываются, чтобы сохранить целостность данных.

Пример с использованием библиотеки pg для PostgreSQL:

const { Client } = require('pg');

async function runTransaction() {
  const client = new Client();
  await client.connect();

  try {
    await client.query('BEGIN');
    await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
    await client.query('UPDATE accounts SET balance = balance - 100 WHERE user_id = $1', [1]);
    await client.query('COMMIT');
  } catch (e) {
    await client.query('ROLLBACK');
    throw e;
  } finally {
    await client.end();
  }
}

Таким образом, транзакции позволяют контролировать выполнение нескольких связанных запросов как единой операции.