【发布时间】:2013-09-30 21:13:29
【问题描述】:
我的意思是我有一个程序可以批量执行 100k 的插入操作。这些插入中的每一个都从插入时的序列中分配了一个新的 ID。出于显而易见的原因,我想保留批处理过程,但我还需要在创建每个 ID 时取出它,并在继续下一个插入之前对其进行处理。有没有办法做到这一点?
【问题讨论】:
-
在 PostgreSQL 中不是非常了解,但是有没有办法让你准备好的语句返回密钥?我正在使用带有 Jdbc 连接的 MySQL DB,语法是
PreparedStatement pstmt = JdbcDB.getConnection().prepareStatement("SQL GOES HERE", Statement.RETURN_GENERATED_KEYS);重要的部分是Statement.RETURN_GENERATED_KEYS。注意JdbcDB只是我创建的一个包装类。getConnection()返回java.sql.Connection。 -
这确实有点帮助,我没有意识到这是一个选项,而这是我正在寻找的东西。但是,即使它返回键,在批处理移动到下一个之前,我有没有办法在 java 中使用该键执行操作?
标签: java postgresql batch-processing bulkinsert sql-insert