* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
|
Windows 11 64Bit |
|
|
CUBRID 11.4 |
|
|
CUBRID ADMIN 12.0 |
|
|
odbc(dbeaver는 jdbc) |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
| 에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
| 관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
기존 만들어진 table의 PK Field에 auto increment 기능을 설정했습니다.
따라서 insert문 진행 시, 해당 PK field는 생략하고 코드를 짜고 난 이후,
해당 insert된 row의 PK 값을 가져오는 쿼리문이 무엇일까요??
알려주시면 감사하겠습니다.
안녕하세요.
위의 구조로 테이블을 생성하신 후 LAST_INSERT_ID() 함수를 통해 해당 값을 확인할 수 있습니다.(세션단위)
ex)
INSERT INTO tbl VALUES(null,'test');
SELECT LAST_INSERT_ID();
해당 SELECT를 통해 바로 이전에 auto_increment 의 자동 증가 된 가장 최근 값을 반환합니다.
단, INSERT와 SELECT중간에 다른 테이블의 자동 증가 컬럼 을 증가 시킬 경우 해당 값을 반환하게 되어지니, INSERT > SELECT 패턴화하여 사용하는 것을 권장 드립니다.
ex)
INSERT INTO tbl_1 VALUES(null,'test');
INSERT INTO tbl_2 VALUES(null,'test');
SELECT LAST_INSERT_ID();
일 경우, tbl_2의 값을 반환.