2010-05-10 85 views
1

我有一個自動遞增ID的表。插入新行後,我想檢索新的ID。MySQL,C++:檢索自動增量ID

我發現了一篇文章,其中使用了MySQL函數LAST_INSERT_ID()。文章說創建一個新的查詢並提交它。

我使用MySQL連接器C++,Windows XP和Vista,和Visual Studio 9

這裏是我的問題:

  1. 是否有一個API,用於連接器, 將取該ID爲 記錄?
  2. insert/append之後的結果集是否包含新的ID?
  3. LAST_INSERT_ID是MySQL 的具體說明。是否有一個SQL 標準獲取新ID的方法?
+0

正如你所說。您可以使用'SELECT LAST_INSERT_ID()'查詢來代替調用庫函數。 – 2010-05-11 01:55:04

+0

@Alexandre Jasmin:C++連接器是否具有庫函數? – 2010-05-11 15:37:48

+0

我在連接器源代碼樹的任何地方都看不到'mysql_insert_id'。如果你真的想加入對它的支持,我想它不會太難。 – 2010-05-12 01:02:32

回答

1
  1. 它看起來並不像它 - 在C API中,你已經mysql_insert_id()這一點,但它不會出現在C++連接器使用,也不會出現執行getGeneratedKeys方法從JDBC API(但是,我不使用這個連接器我自己,所以我可能會失去一些明顯的...)。
  2. 不,從INSERT沒有結果集。
  3. 編號Supposedly, DB2 is the only one遵循SQL標準對自動生成密鑰的說明;其他人都以不同的方式(從標準和對方)進行。