
cubrid_insert_id 함수는 INSERT 문을 실행한 후에만 값을 반환하는 함수가 아닙니다. 실제로 INSERT 문이 실행되기 전에 반환되는 이유는 autocommit 모드가 OFF인 경우에 발생하는 현상입니다.
autocommit 모드가 OFF인 경우, INSERT 문이 실행되기 전에 COMMIT 또는 ROLLBACK 명령이 실행되지 않는 한, INSERT 문이 실제로 데이터베이스에 반영되지 않습니다. 따라서 cubrid_insert_id 함수는 INSERT 문이 실제로 데이터베이스에 반영되기 전에 반환되는 것입니다.
이 문제를 해결하기 위해서는 autocommit 모드를 ON으로 설정하거나, INSERT 문이 실행된 후에 COMMIT 명령을 실행하는 것입니다.
예를 들어, 다음과 같은 코드를 실행할 수 있습니다.
sql
SET autocommit = 1;
INSERT INTO 테이블명 (컬럼명) VALUES ('값');
SELECT cubrid_insert_id();
또는
sql
SET autocommit = 0;
INSERT INTO 테이블명 (컬럼명) VALUES ('값');
COMMIT;
SELECT cubrid_insert_id();
이러한 코드를 실행하면, cubrid_insert_id 함수는 INSERT 문이 실제로 데이터베이스에 반영된 후에 반환되는 것을 확인할 수 있습니다.
2025-06-01 16:06