【发布时间】:2014-11-20 16:03:10
【问题描述】:
我正在使用 Sails waterline mysql 适配器来管理 MySQL 数据库,
在抑制期间我有 3 个模型,我必须在 Seire 中执行查询,但如果最后一个模型失败,我必须执行回滚。水线和交易是否可以实现。
【问题讨论】:
标签: node.js sails.js waterline
我正在使用 Sails waterline mysql 适配器来管理 MySQL 数据库,
在抑制期间我有 3 个模型,我必须在 Seire 中执行查询,但如果最后一个模型失败,我必须执行回滚。水线和交易是否可以实现。
【问题讨论】:
标签: node.js sails.js waterline
是的,您可以为此使用 Model.query 函数。它允许您执行任何本机 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)";
这里的结果对象理解起来会有点复杂。仔细分析一下。现在,使用本机查询时要注意的是,确保您转义用户提供的参数以避免 SQL 注入攻击
【讨论】: