개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.01 16:05

cubrid_insert_id 함수의 사용법을 알려주세요

목록
  • 노드장인 2일 전 2025.06.01 16:05
  • 19
    1
제가 cubrid_insert_id 함수를 사용할 때, INSERT 문을 실행한 후에만 값을 반환하는 것처럼 보입니다. 하지만 실제로 INSERT 문이 실행된 후에만 반환되는 것이 맞는지 궁금합니다.

예를 들어, 다음과 같은 코드를 실행했을 때, cubrid_insert_id 함수의 반환값이 INSERT 문이 실행되기 전에 반환되는 이유는 무엇입니까?

sql

SET autocommit = 0;

INSERT INTO 테이블명 (컬럼명) VALUES ('값');

SELECT cubrid_insert_id();

COMMIT;



cubrid_insert_id 함수의 반환값이 INSERT 문이 실행되기 전에 반환되는 이유는 무엇이고, 이에 대한 해결책은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  2일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,867건 / 15 페이지

검색

게시물 검색