【发布时间】:2017-11-26 05:52:24
【问题描述】:
在mariasql 库中使用事务是否有比在查询开头添加BEGIN 并通过提交或回滚来完成更好的方法?
目前,如果我想在事务中包装一系列查询,我必须这样做:
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;');
});
这看起来很笨拙并且可能容易出错。我们正在使用generic-pool 来管理mariadb 客户端,因此以这种方式处理事务似乎会产生一些意想不到的后果。
【问题讨论】:
-
client.beginTransaction不存在?如果没有,请改用 mysql 库
标签: node.js transactions mariadb mariasql