【问题标题】:jdbc 4 connection rollback autoincrement issuejdbc 4连接回滚自动增量问题
【发布时间】:2012-03-21 22:39:12
【问题描述】:

我刚开始学习 jdbc 并用它进行各种测试。

我遇到了以下情况

  • 设置保存点
  • 创建准备好的语句并尝试执行(将数据插入到具有不存在外键值的表中
  • execute() 方法失败,我执行回滚。
  • 当我执行有效查询时,会将一行插入到数据库中,但主键设置为 n+2 而不是 n+1(其中 n 是最后插入的值)。即使查询失败,也要猜测索引自动增量。

有没有一种机制可以避免这种情况并设置n+1?

注意。我正在使用 MySQL。

谢谢。

【问题讨论】:

  • 阅读stackoverflow.com/questions/449346/…主题怎么样?
  • 我同意那个帖子,但我不想在我的应用逻辑中考虑到这一点。我只是想知道为什么会出现这种现象,以及是否有办法克服这一点。
  • 发生这种情况是因为 id 生成独立于事务。如果不付出很多努力,就没有办法克服它。不要为 id 赋予任何含义。
  • 这就是 Oracle 数据库没有 AUTO_INCREMENT 字段的原因。请改用触发器。

标签: java mysql jdbc


【解决方案1】:

这种行为对于 MySQL auto_increment 是正常的。 好吧,您可以使用 mysql_insert_id() 来做一些魔术。

【讨论】:

    猜你喜欢
    • 2011-10-10
    • 2021-12-29
    • 1970-01-01
    • 2010-10-03
    • 2023-03-27
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多