2013-08-02 104 views
0

如何從Informix中的SQL語句獲取最後插入的標識。我知道DBINFO,但是如何獲得像「insert into table_name(fields)values(values)」這樣的SQL來返回最後插入的ID?在Informix中從SQL本身獲取最後插入的標識

+0

歡迎來到Stack Overflow。請儘快閱讀[關於]頁面。請不要使用像'knw abt'這樣的縮寫;使用完整的英文單詞。 –

回答

3

哪種主機語言?

有關爲SERIAL列創建的值的信息位於SQLCA(SQL通信區)中。有關爲BIGSERIAL列創建的值的信息可通過函數調用獲得。有關爲SERIAL8列創建的值的信息可通過不同的函數調用獲得。但是,ESQL/C與ODBC和JDBC之間的細節不同......並且如果您同時擁有SERIAL和SERIAL8或BIGSERIAL,則可以找到大量信息(但會出現有關爲什麼您同時擁有這兩種類型的問題一張桌子)。

問題Informix: how to get an id of the last inserted record提供了類似的信息(和感謝seekerOfKnowledge找到它)。

+0

嗨喬納森,謝謝你,並對不使用全英文單詞感到抱歉。現在我是在從sql本身返回最後一個插入的序列號之後。例如,如果你有一個sql將一條記錄插入到一​​個表中,並且該表中有一個串行列如何使它返回最後插入的串行ID?一個示例sql會很有用。感謝 –

+0

我最初的問題是 - 哪種語言?而SQL不是答案;聲壓級可能是。 –

0

這似乎工作,如果你想嚴格SQL。

選擇tabid FROM 「的Informix」 .systables 其中tabname = 'sm_job_cost' /* 607 */

SELECT DBINFO( 'sqlca.sqlerrd1')FROM SYSTABLES WHERE tabid = 607; /* 0 */

插入到sm_job_cost(smjc_jb_prodlnk,smjc_prft_ctr)值(1,2)

SELECT DBINFO( 'sqlca.sqlerrd1')FROM SYSTABLES WHERE tabid = 607; /* 1 */

相關問題