2013-08-02 2 views
0

Informix의 SQL 문에서 마지막으로 삽입 된 ID를 가져 오는 방법은 무엇입니까? 나는 DBINFO에 대해 알고 있지만 SQL을 "insert into table_name (fields) values ​​(values)"와 같이 마지막 삽입 된 ID를 반환하는 방법을 알고 계십니까?Informix에서 SQL 자체에서 마지막으로 삽입 된 ID 가져 오기

+0

스택 오버플로에 오신 것을 환영합니다. 곧 [About] 페이지를 읽으십시오. '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

안녕하세요, Jonathan, 영어를 사용하지 않으셔서 고맙습니다. 이제는 SQL 자체에서 마지막으로 삽입 된 일련 ID를 반환 한 후입니다. 예를 들어 SQL에 테이블에 레코드를 삽입하고 해당 테이블에 직렬 열이 있으면 마지막으로 삽입 된 일련 ID가 반환됩니다. SQL 예제가 유용 할 것입니다. 감사합니다. –

+0

내 초기 질문 - 어떤 언어? 그리고 SQL은 답이 아닙니다. SPL이 될 수도 있습니다. –

0

이것은 엄격하게 SQL을 원할 경우 작동하는 것 같습니다. "인포믹스"FROM

선택 TABID 가 .systables 여기서 TABNAME = 'sm_job_cost' /* 607 */

SELECT DBINFO SYSTABLES FROM ('sqlca.sqlerrd1') WHERE TABID = 607; sm_job_cost로 은/* 0 */

인서트 (smjc_jb_prodlnk, smjc_prft_ctr)의 값 (1, 2)

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

관련 문제