我不知道如何在子表中插入一行,该行的属性引用了同一事务中的列ID(父表的主键),因为如果不提交事务,我就不知道父表的主键。有没有解决此问题的方法?
zsohkypk1#
您已经回答了您的问题:在事务提交之前,您没有足够的数据。也许可以尝试使用嵌套事务之类的方法。注意,并非每个数据库都支持此功能。
h5qlskok2#
Mysql有LAST_INSERT_ID()函数。
2ic8powd3#
执行完语句后,调用getGeneratedKeys()获取生成得键:
Statement statement = connection.prepareStatement("insert into ..", Statement.RETURN_GENERATED_KEYS); statement.executeUpdate(); ResultSet keys = statement.getGeneratedKeys(); ...
3条答案
按热度按时间zsohkypk1#
您已经回答了您的问题:在事务提交之前,您没有足够的数据。也许可以尝试使用嵌套事务之类的方法。注意,并非每个数据库都支持此功能。
h5qlskok2#
Mysql有LAST_INSERT_ID()函数。
2ic8powd3#
执行完语句后,调用getGeneratedKeys()获取生成得键: