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();
}
}
Таким образом, транзакции позволяют контролировать выполнение нескольких связанных запросов как единой операции.