在INSERT語句之後獲取SERIAL列的值的最有效方式是什麼?即我正在尋找一種方法來複制MS SQL的@@IDENTITY
或SCOPE_IDENTITY
的功能Informix:如何獲取最後插入的記錄的標識
回答
最後一個SERIAL插入的值作爲sqlerrd數組中的第二個條目存儲在SQLCA記錄中。 Brian的答案對於ESQL/C是正確的,但是你沒有提到你使用的是什麼語言。
如果你正在寫一個存儲過程,該值可以由此發現:
LET new_id = DBINFO('sqlca.sqlerrd1');
也可以在$sth->{ix_sqlerrd}[1]
如果使用DBI
有其他語言/接口變種中發現,但我相信你會明白的。
我已經看到了這個使用。
if LOCAL_SQLCA^.sqlcode = 0 then
/return serial */
Result := LOCAL_SQLCA^.sqlerrd[1]
else
/* return error code */
Result := -(Abs(LOCAL_SQLCA^.sqlcode));
我不認爲「高效」是你在這裏尋找的詞。這更多的是準確性問題。我不確定我可以比SQL Books Online更好地解釋它,但通常情況下,除非您真的知道自己在做什麼並且有使用@@ IDENTITY的特定原因,否則使用SCOPE_IDENTITY。最顯而易見的原因是,@@ IDENTITY不會返回由程序/ sp/etc添加的最新記錄的身份(如果有附加到該表的觸發器)。此外,有可能是在兩筆交易發生在同一時間,則會出現以下大批量應用的問題...
- 你插入
- 其他用戶插入
- 返回其他用戶的身份,你
您可能會注意到,問題是關於Informix,而不是MS SQL – 2008-10-30 19:39:44
OP沒有指定正在使用哪個版本的Informix,因此可能會有不同的答案
這是不可靠的 - 其他人可能插入了自插入以來更新,更大的值。 – 2010-01-23 05:50:21
- 1. 如何獲取PHP中的最後一個插入的標識
- 2. 如何獲取Web服務中最後插入的記錄ID
- 3. sql server:我如何獲取插入的最後一條記錄?
- 4. 如何獲取最後插入的記錄爲perticular ID?
- 5. 獲取mysql最後插入ID,插入記錄後使用PDO
- 6. 如何插入多個記錄並獲取標識值?
- 7. ASP.NET MVC獲取最後添加的記錄的標識
- 8. Informix的:如何獲得最後插入語句的ROWID
- 9. 如何在插入記錄後從SQL服務器獲取標識值
- 10. 獲取Google Apps腳本中最後插入的行的標識
- 11. 如何獲取最後的記錄? (JS)
- 12. 獲取最後插入的記錄的值
- 13. 獲取的最後插入記錄的ID
- 14. SqlAlchemy:獲取插入的最後一條記錄的ID
- 15. 如何獲取剛剛插入的最新記錄的ID?
- 16. 獲取oracle db中最後插入記錄的ID
- 17. Hive查詢獲取插入表中的最後一條記錄
- 18. 獲取被插入的記錄的ID插入後
- 19. 如何正確獲取mysql中最後插入的記錄的id?
- 20. 如何獲取最近插入的記錄amoung重複數據
- 21. Nodjs sequalize如何獲得最後一個插入標識
- 22. PHP從ODBC連接中獲取最後一個插入標識
- 23. asp mvc從savechanges獲取最後插入標識()
- 24. 如何獲取SQLite中最後插入記錄的自動遞增值?
- 25. 如何使用php和mysql獲取某個記錄的最後插入日期?
- 26. 如何使用angularjs和php從數據庫獲取最後插入的記錄?
- 27. 如何在Gupta SQL Base中獲取最後插入的記錄ID
- 28. 查找最後插入的記錄 - Postgresql
- 29. 如何從另一張表中獲取最後一個插入標識在php
- 30. 如何從MongoDB獲取最新插入記錄每一分鐘?
這是哪種語言?是帕斯卡嗎?否定的ABS有點奇怪;除非你正在建立一個連接(可惜的是,至少有一個肯定的錯誤),Informix中的所有錯誤編號都是負數。 – 2008-11-02 21:04:41