java 在SQL中,有没有办法在同一事务中的具有自动增量主键的父表和子表中插入一行?

w46czmvw  于 2022-11-20  发布在  Java
关注(0)|答案(3)|浏览(137)

我不知道如何在子表中插入一行,该行的属性引用了同一事务中的列ID(父表的主键),因为如果不提交事务,我就不知道父表的主键。有没有解决此问题的方法?

zsohkypk

zsohkypk1#

您已经回答了您的问题:在事务提交之前,您没有足够的数据。也许可以尝试使用嵌套事务之类的方法。注意,并非每个数据库都支持此功能。

h5qlskok

h5qlskok2#

Mysql有LAST_INSERT_ID()函数。

2ic8powd

2ic8powd3#

执行完语句后,调用getGeneratedKeys()获取生成得键:

Statement statement =
    connection.prepareStatement("insert into ..",
                                Statement.RETURN_GENERATED_KEYS);
statement.executeUpdate();
ResultSet keys = statement.getGeneratedKeys();
...

相关问题