2013-03-10 97 views
2

所以我有一个JDBC调用来插入数据到数据库。执行完插入语句之后,如何才能得到具有id值的语句?

我希望能够查看整个语句(所以,你知道,“插入some_table(colA,colB)值(1,2)”)。

但我会喜欢看的声明,因为它真的是什么 - 那就是,

insert into some_table (id, colA, colB) values (8,1,2) 

其中ID是主键(或任何其他AUTO_INCREMENT字段)什么SQL thingy会决定自动递增的值!

这是可能的吗?

+0

这个问题对我来说毫无意义!不管我读了多少次! – 2013-03-10 21:19:53

+4

@Aniket这个问题对我来说非常有意义。 – 2013-03-10 21:20:36

+0

请解释@MarlinPierce – 2013-03-10 21:21:12

回答

3

声明不变。如果表中有一个自动增量键(ID),它将永远不会显示在语句中,但会在执行语句时由数据库引擎添加。

因此,不可能看到带有ID列的语句,但取决于您的DBMS,有不同的技术来确定自动生成的值是什么。

即,在SQL Server中,您可以使用SCOPE_IDENTITY()。在Oracle上,您可以使用RETURNING INTO。对于Postgres,你可以看看Can I use return value of INSERT...RETURNING in another INSERT?

+3

使用JDBC可以使用[getGeneratedKeys](http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#getGeneratedKeys()),另见http:/ /stackoverflow.com/questions/1915166/how-to-get-the-insert-id-in-jdbc – beny23 2013-03-10 22:27:34