IT/DBMS

[Cubrid]8버전 merge into 미지원

알 수 없는 사용자 2022. 11. 28. 06:59
반응형

목차

    [cubrid]merge into

    ex) 
    MERGE INTO test A USING db_root  
    ON   A.code = 'test' // 조건문
    WHEN MATCHED THEN   // 조건문에 해당하는 데이터가 있을 때   UPDATE문 실행
    	 UPDATE SET A.name = '로다주', 
                    A.id ='아이언맨', 
                    A.email = 'ironman@naver.com'
    WHEN NOT MATCHED THEN   // 조건문에 해당하는 데이터가 없을 때  INSERT문 실행
              INSERT (A.code, A.name, A.id, A.email) VALUES ('test', '로다주', '아이언맨', 'ironman@naver.com'  )
    ;

    프로젝트 진행하다가 겪었던 시행착오를 기입합니다.

    당시 운영DB는 cubrid 8.x 버전이었고 개발 DB는 9.x 버전이었습니다.

    당시에는 DBMS 버전에 따라 지원하는 함수의 상이한 점과 신경 써야 될 점들을 잘 몰랐었기에 

    개발에서 기능 구현 시 merge into로 개발 했었습니다.

     

    운영에 반영 했더니 DBMS 에러가 빵~!

    구글링 해보니..cubrid 8버전에서 merge into를 지원하지 않는 함수를 사용해서로 확인이 되었습니다.

    다행히 merge into로 구현했던 기능이 많지 않았기에..

    분기 태워서 insert/update로 변경해서 정상 반영 했던 기억이 납니다.

     

    그뒤에는 웬만하면 운영DB와 동일한 버전과 bit의 DBMS로 개발도 세팅하려고 합니다.

    저와 같은 실수를 하지 않으시길 바랍니다.

     

    배움에는 끝이 없습니다.

    참조 : https://www.cubrid.com/faq/3794684

     

    CUBRID | FAQ & TIP - MERGE INTO 사용 예제 ( INSERT, UPDATE문을 1개의 쿼리로 실행 )

    큐브리드 9.1부터 추가 된 MERGE INTO 구문이 지원 된다.프로그램 개발 시에 데이타 존재 유무에 따라 insert 또는 update를 수행한다.즉, 1. 저장하고자 하는 데이터 존재 여부를 select 문으로 조회2. 조

    www.cubrid.com

    반응형