Dél*_*nio 4 java mysql sql transactions foreign-keys
在 Java 游戏服务器代码中,我将客户端数据拆分为许多表,以便将来轻松添加新内容。
现在我有下表
该name表包含列id和name。
该auth表有列id和password。
和表id上的列对的列有外键约束。authinventorynameid
创建新客户端时,我会在单独的插入语句中插入name表,获取生成的 id 并将其余数据插入其他表中,但所有这些都在单个事务中进行。
问题是,当我插入表时auth,由于外键签入而失败,name因为我尚未提交它。有没有更好的方法来解决这个问题,而无需每次插入都进行提交?
直到并且除非您插入父表rollback后,子表将允许插入与父表中新插入的行相对应的行,即使您在插入父表后不这样做。所以这几乎不用担心。操作的影响持续到下一次,并且通过语句变得永久。因此,如果您在父表中的操作之后没有显式地执行操作,则子表将始终允许与父表中的所有行相对应的插入,而不管进行任何操作。commitDMLrollbackcommitrollbackinsertcommit
因此,即使FOREIGN_KEY_CHECKS=1.
| 归档时间: |
|
| 查看次数: |
4534 次 |
| 最近记录: |