Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

LAST_INSERT_ID 함수

설명

LAST_INSERT_ID 함수는 하나의 INSERT 문에 의해 AUTO_INCREMENT 칼럼에 가장 최근에 삽입된 값을 반환한다. LAST_INSERT_ID 함수가 반환하는 값은 다음의 특징을 가진다.

  • 성공적으로 INSERT된 값이 없을 때에는 가장 최근에 성공한 값이 유지된다.
  • 수행 중인 SQL 문은 LAST_INSERT_ID() 값에 영향을 주지 않는다.
  • 다중 행 INSERT 문(예: INSERT INTO tbl VALUES (), (), …, ())에서 LAST_INSERT_ID()는 첫 번째로 입력된 AUTO_INCREMENT() 값을 반환한다.
  • 롤백해도 LAST_INSERT_ID() 값은 트랜잭션 이전의 LAST_INSERT_ID() 값으로 복구되지 않는다.
  • 트리거 내에서 사용한 LAST_INSERT_ID() 값은 트리거 밖에서 확인할 수 없다.
  • LAST_INSERT_ID는 각 응용 클라이언트의 연결마다 독립적으로 유지된다.
구문

LAST_INSERT_ID()

예제 1

CREATE TABLE ss (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, text VARCHAR(32));

INSERT into ss VALUES(NULL,’cubrid’);

SELECT LAST_INSERT_ID();

 

     last_insert_id()

=======================

                     1

 

INSERT INTO ss VALUES(NULL,’database’),(NULL,’manager’);

SELECT LAST_INSERT_ID();

 

     last_insert_id()

=======================

                     3

예제 2

CREATE TABLE tbl (id INT AUTO_INCREMENT);

INSERT INTO tbl values (500), (NULL), (NULL);

SELECT LAST_INSERT_ID();

 

     last_insert_id()

=======================

                     1

 

INSERT INTO tbl values (500), (NULL), (NULL);

SELECT LAST_INSERT_ID();

 

     last_insert_id()

=======================

                     3

 

SELECT * FROM tbl;

 

                    id

=======================

                   500

                     1

                     2

                   500

                     3

                     4