Gibt es eine bessere Möglichkeit, Transaktionen mit der mariasql-Bibliothek zu verwenden, als BEGIN
zum Anfang der Abfrage hinzuzufügen und mit einem Commit oder einem Rollback abzuschließen?Verwenden Sie Transaktionen mit Mariadb und node.js
Derzeit wenn ich eine Reihe von Abfragen in einer Transaktion wickeln will, muss ich so etwas wie dies tun:
const MariaClient = require('mariasql');
let client = new MariaClient();
client.connect({
host: "127.0.0.1",
user: "user",
password: "pass",
db: "some_db",
multiStatements: true
});
client.query('BEGIN; INSERT INTO some_table VALUES ("a0","b0"), ("a1","b1"), ("a2","b2");', function (err) {
if (err) {
client.query('ROLLBACK;');
}
client.query('COMMIT;');
});
Diese klobigen scheint und möglicherweise fehleranfällig. Wir verwenden den generic-pool, um den Mariadb-Client zu verwalten. Es scheint also, als könnte es einige unbeabsichtigte Konsequenzen geben, Transaktionen auf diese Weise zu behandeln.
'client.beginTransaction' ist nicht vorhanden? Wenn nicht, verwenden Sie stattdessen die mysql-Bibliothek –