使用 SQL 插入一堆行的最快方法是什么

发布于 2024-11-30 04:58:47 字数 207 浏览 1 评论 0原文

我的内存中有一个数字数组,我需要将它们放入临时表中,以便可以与其他表连接。该列表可以是 5 个,也可以是 250000 个。 我可以一次插入一个,但我想知道是否有任何 sql 技巧可以一次插入 100 个,并在 select 中插入一些......这是我没有想到的事情。

批量上传器(在 sybase 中)不是一个选项,因为它没有 java 实现,并且脱壳到 bcp 也不是一个选项。

I have an array of numbers in memory and I need to put them in a temp table so I can join against other tables. The list can be 5 or it can be 250000.
I can do one insert at a time, but I was wondering if there was any sql trick where I could insert 100 at a time with some insert into select.... kind of thing that I'm not thinking of.

The bulk uploader (in sybase) is not an option because there's no java implementation for it, and shelling to bcp is not an option either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笏见 2024-12-07 04:58:47

尝试 JDBC 批量插入。我从未使用过 Sybase,但这也适用于 MySql、Postgres 和 Oracle。

Statement stmt = con.createStatement();

stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')");
stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')");
stmt.addBatch("INSERT INTO emp_dept VALUES (1000, 260)");

// submit a batch of update commands for execution
int[] updateCounts = stmt.executeBatch();

http://download.oracle.com /javase/1.3/docs/guide/jdbc/spec2/jdbc2.1.frame6.html

Try JDBC batch insert. I never worked with Sybase but this works with MySql, Postgres and Oracle as well.

Statement stmt = con.createStatement();

stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')");
stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')");
stmt.addBatch("INSERT INTO emp_dept VALUES (1000, 260)");

// submit a batch of update commands for execution
int[] updateCounts = stmt.executeBatch();

http://download.oracle.com/javase/1.3/docs/guide/jdbc/spec2/jdbc2.1.frame6.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文