将数据从应用程序 (Java) 导入临时 table 的最快方法是什么?

What is the fastest way to import data from application (Java) into temporary table?

我正在使用 Java、Spring 和 PostgreSQL 开发应用程序。我正在使用 Spring-JDBC 作为数据库层。

在我的 Java 应用程序中,我有大约 10.000 行需要插入临时 table。导入它们的最快方法是什么?

我已经试过了:

create temporary table my_table on commit drop;

with data as (values (...), (...), ...) -- all 10.000 rows enumerated
insert into my_table select * from data;

但这失败了,因为查询变得太大而无法解析。

我应该只发送较小的批次,还是有更聪明的方法将数据流式传输到数据库?

更新

我在做什么:

在数据库中,有一个 table,比方说,'external entities'。每隔几个小时,我就会(通过 ActiveMQ 代理)获得完整的当前实体集的更新。这个集合需要在我的数据库中。我执行以下操作:

我不能简单地截断我的实际 table 并直接插入实际的 table,因为对 table 的外部限制和对 table 的触发。换句话说,我只是反映了实际的变化。

尝试使用 copy from stdin。这将是放置 10K 行的最聪明和最快的方法

http://pgpen.blogspot.ie/2013/05/using-copy-in-your-jdbc-code.html