2013-03-10 12 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