Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window10 64bit, Linux 64bit 등
CUBRID Ver.
10.2.0
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
nodejs


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

client.execute('INSERT INTO tbl (name) VALUES(?)', 'cubrid', function (err) {
  // Handle the error;
});

 

인서트 작업 후 콜백함수로 새로 추가된 자동증가된 ID값을 얻고 싶은데, 콜백함수는 에러만 처리하는거 같은데 좋은 방법이 없을까요?

mysql의 경우 콜백 함수에 결과값도 지원되어서 그 값을 알수가 있습니다.

 

  • ?
    원종민 2022.02.21 14:42

    1) 큐브리드 NODE 드라이브에서는 mysql 드라이브에서 지원하는 ".insertId" 함수가 없습니다.

    2) 따라서, 아래 예시와 같이 SELECT LAST_INSERT_ID() 쿼리를 수행해 원하시는 "자동증가된 ID값"을 얻을 수 있습니다.
    * LAST_INSERT_ID 함수에 대한 자세한 내용은 아래 온라인 매뉴얼을 참조해주세요.
    * 온라인 매뉴얼 URL : https://www.cubrid.org/manual/ko/10.2/sql/function/information_fn.html?highlight=last_insert_id#last-insert-id

    예제)

    코드 :
    const client = CUBRID.createConnection(dbConf); // cubrid DB connection

    var sql = "INSERT INTO t1 VALUES(null,?)";
    var sql2 = "SELECT LAST_INSERT_ID()";
    client.execute(sql, 'cubrid2', function(err){
    if (err) throw err;
    //mysql에서 지원하는 함수
    //console.log(result.insertId);

    //cubrid 에서는 아래 쿼리를 한 번 더 수행
    client.query(sql2, function(err, result, queryHandle){
    const rows = result.ColumnValues;
    console.log("insertID : " + rows);
    console.log("");
    console.log(result);

     

    client.closeQuery(queryHandle);
    });
    });

    콘솔 결과 :
    insertID : 18

    { ColumnDataTypes: [ 'Numeric' ],
    ColumnNames: [ 'last_insert_id()' ],
    ColumnValues: [ [ 18 ] ],
    RowsCount: 1 }

    DB 결과 :
    csql> create table t1 (col1 int auto_increment, col2 varchar);
    csql> select * from t1;

    === <Result of SELECT Command in Line 1> ===

    col1 col2
    ===================================
    1 'cubrid1'
    2 'cubrid1'
    3 'cubrid1'
    ...
    17 'cubrid1'
    18 'cubrid2'

  • ?
    jslee 2022.02.21 17:11
    답변 감사합니다.
  • ?
    원종민 2022.02.21 18:08

    추가로 반복문 테스트 결과 앞서 소개드린 방법으로 수행할 경우, insert 된 값은 전부 정상적으로 들어가나 "자동증가된 ID값" 은 마지막 자동증가된 값만 호출 받습니다.

    예제1) 1~10 을 insert 할 경우

    콘솔 결과 :
    insertID : 10
    insertID : 10
    ...
    insertID : 10
    insertID : 10

    따라서, 현재 찾은 방법은 아래와 같습니다.

    예제2 )

    코드 :
    for(var i=0; i<10; i++){
    var sql = "INSERT INTO t1 VALUES(null,?)";
    var sql2 = "SELECT LAST_INSERT_ID() as insertID";

    client.execute(sql, 'cubrid2', function(err){
    if (err) throw err;
    //mysql에서 지원하는 함수
    //console.log(result.insertId);
    });

    //cubrid 에서는 아래 쿼리를 한 번 더 수행
    client.query(sql2, function(err, result, queryHandle){
    if (err) throw err;

    const rows = result.ColumnValues;
    console.log("insertID : " + rows);
    console.log("");
    console.log(result);

    client.closeQuery(queryHandle);
    });
    }

    콘솔 결과 :
    insertID : 1
    insertID : 2
    ...
    insertID : 9
    insertID : 10


  1. No Image notice by admin 2024/04/23 by admin
    Views 129 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. 한글명 테이블에 blob 저장 오류

  4. 큐브리드 함수 생성을 위해 자바 파일을 만들고 이 자바파일에서 Ibatis를 이용할때 오류

  5. cubrid javasp start fail 관련 문의드립니다.

  6. nodejs 많은 데이터 관련해서 트랜잭션 작업시 에러 발생

  7. 큐브리드 마이그레이션중 에러

  8. Oracle에서 Cubrid 로 이관을 하려고 하는데 CMT말고 할수 있는 방법이 있을까요?

  9. db 로그인시 log fatal error 오류 문의 드립니다.

  10. 정수/정수 결과를 소수로 출력하게 하는법

  11. on duplicate key update values 사용 방법 질문

  12. 큐브리드 서로 다른버전 원격접속 불가능 한게 맞나요??

  13. Cannot allocate query entry any more. Maximum allocatable entries are 100.

  14. 스크립트와 cubrid manager 어떤게 문제 일까요?

  15. select sql실행시 에러

  16. 데이터 내보내기 기능 오류

  17. nodejs 사용하여 insert 작업 후에 생성된 ID값을 얻고 싶은데 방법이 있을까요?

  18. 권한 부여 방법

  19. php-cubrid 연동 시 cubrid driver 인식 문의

  20. Cubrid Manager Hang

  21. 생성된 db에 사용자와 스키마 추가하는 법(큐브리드매니저, csql 인터프리터 사용x)

  22. csql로 .sql가져오기 시, 한글 깨짐 발생

Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 201 Next
/ 201

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales