2012-08-10 77 views
1

我有一个需要上传到SQL表的大型数据集(250,000行)。我目前正在从我创建的Java应用程序执行此操作,并且正如预期的那样,它非常慢。我必须将每行从文本文件插入到表中,并使用auto_increment列存储新行的id。现在我想用同一个id将我输入到第一个表的字符串的修改版本插入到第二个表中,其中一列包含原始递增的id,这样我就可以将两行结合在一起。很明显,我可以查询刚刚插入的字符串,并拉出id,但这是我试图避免的每行额外查询。有没有办法将执行insert语句时从sql表中增加的id值拉到java类中?SQL返回插入的Auto_increment值

感谢,

+0

您正在使用哪个数据库服务器? – Diego 2012-08-10 23:48:51

+0

其在亚马逊AWS上的RDS实例上运行的SQL数据库。这有帮助吗? – user1028882 2012-08-10 23:57:23

+0

不幸的是,它没有。 RDS只是一个RDBMS实例的接口,所有RDBMS都使用SQL,但检索新插入行的ID的方式在它们之间会有很大变化。我建议你找出你连接的数据库服务器是SQL Server,MySQL,Oracle,PostgreSQL还是别的。 – Diego 2012-08-11 01:32:06

回答

1

我猜你正在使用JDBC 所以使用java.sql.PreparedStatementgetGeneratedKeys()。返回的Resulset包含自动生成的密钥。

+0

谢谢,正是我需要的! – user1028882 2012-08-11 02:56:31