将尝试使这尽可能简单。我在函数中使用 throw/catch。该函数接受名称、描述和用户数组。它将名称和描述添加到一个表中,然后获取用户数组,并执行一个单独的函数将它们添加到连接器表中。我将功能设置为关闭自动提交,直到输入最后一个用户然后提交。问题是,如果其中一个用户未能进入(由于外键约束),则不会退出事务。我正在调用单独的函数这一事实是否会“重置”自动提交并导致它无法按预期工作?通过将回滚放在 Catch 子句中,我做错了吗?
try
{
autocommit=0
run insert query
if query fails: throw error, rollback
else
for count of array
run another function (this function does more SQL and throws its own errors if it fails)
autocommit=1
}
catch
{
rollback, autocommit=1;
display error
}
希望我没有过度简化代码。任何帮助,将不胜感激。