我正在使用 Sails Waterline mysql 适配器来管理 MySQL 数据库,
在抑制期间我有 3 个模型,我必须在 Seire 中执行查询,但如果最后一个模型失败,我必须执行回滚。通过水线和交易可以实现这一点吗?
最佳答案
是的,您可以使用 Model.query 函数来实现此目的。它允许您执行任何 native SQL 查询。例如
var myQuery = "select * from users";
User.query(myQuery, function(err, result){
if(err){
// error handling here
}
else{
// result handling here
}
})
通过执行控制台日志仔细观察结果对象。
对于您的情况,您需要编写一个 SQL 存储过程来执行事务中的所有操作。然后你的代码就变成了
var myQuery = "call store_proc_name(params)";
这里的结果对象理解起来会稍微复杂一些。仔分割析一下。现在,使用 native 查询时要注意的是,请确保转义用户提供的参数以避免 SQL 注入(inject)攻击
关于node.js - 多种型号的水线交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044050/