gpt4 book ai didi

java - 提交前的 SQL 外键

转载 作者:行者123 更新时间:2023-11-29 03:02:34 25 4
gpt4 key购买 nike

在 Java 游戏服务器代码中,我将客户端数据拆分为多个表,以便将来添加新内容。

现在我有以下表格

  • 姓名
  • 授权
  • 库存

name 表包含列 idname

auth 表包含列idpassword

authinventory 表上的 id 列在 nameid 列。

当创建一个新的客户端时,我插入到 name 表中,获取生成的 id 并在单独的插入语句中将其余数据插入其他表中,但所有这些都在一个事务中。

问题是,当我插入到 auth 表时,由于 name 中的外键检查而失败,因为我还没有提交它。有没有更好的方法来解决这个问题而无需在每次插入时都提交?

最佳答案

直到并且除非您在插入到父表之后回滚子表将允许插入与新插入的行相对应的行在父表中即使您在插入到父表后没有提交所以这几乎不是一个担心的问题。 DML 操作的影响一直持续到下一次 rollback 并成为永久性的 commit 语句。因此,如果您在父表中的 insert 操作之后没有显式地 rollback ,则子表将始终允许插入对应于父表中所有行的操作,而不管任何 commit 操作。

因此即使 FOREIGN_KEY_CHECKS=1 也不会出现问题。

关于java - 提交前的 SQL 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com