开发者社区> 问答> 正文

预处理与事务怎么同时使用

sql1,sql2两条语句分别插入到不同的表中,sql2某一个属性就是sql1插入后自增长的ID值。
我希望使用预处理来处理sql1和sql2, 同时希望他们执行的时候是在一个事务中, 现在问题就是, 事务中没提交的操作并没有真的插入到数据库中, 所以自增长的ID不存在,sql2插入出错, 肿麽办?
我现在处理方法就是不启动事务, 预处理sql1, 然后max出结果ID, 在预处理sql2, 一旦sql2出现异常, 根据ID删掉记录。 感觉有点麻烦。
其实我主要想知道,例如cnblog, 文章html内容和文章本身属性应该不是存在一个表中,如果是两个表, 他们是怎么处理同时插入和防注入的......

展开
收起
蛮大人123 2016-02-13 10:17:07 3269 0
3 条回答
写回答
取消 提交回答
  • 事务SQL是为了保证数据一致性,要么成功写入,要么写入失败,而且已经写入的会被回滚

    2021-10-12 10:15:02
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    事务是SQL处理逻辑,预处理是SQL执行语句

    2021-09-30 16:15:02
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    事物和预处理冲突吗? 不冲突啊。开启事物,然后正常预处理,开启事物后应该也有自增ID吧。最后判断是否回滚。

    2019-07-17 18:41:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载