데이터 insert 시 이미 존재하는 데이터가 있을경우 update 실행

 

방법은

1. 저장하고자 하는 테이블에 PK(또는 UNIQUE 제약)이 설정되어 있는 경우에 insert 수행

2. 결과 unique violation 에러가 발생하면 update 수행

 

CUBRID2008R3.0부터 가능

 

1. 테스트 테이블 생성

 

CREATE TABLE test_tbl (

code CHAR(3) NOT NULL,

name varchar(40) NOT NULL,

CONSTRAINT pk_test_tbl PRIMARY KEY(code)

); 

 

2. 데이터 입력

 

INSERT INTO test_tbl VALUES ('code', 'name');

결과==============================

    code      name

 

3. INSERT UPDATE

 

INSERT INTO test_tbl VALUES ('code', 'name') ON DUPLICATE KEY UPDATE name = 'nm';

결과==============================

   code nm

 

 

생각보다 간편

 

MERGE INTO 기능이 있으나 이게 더 간편한듯

 

 

-- 참고

http://www.cubrid.com/faq/3794601

불러오는 중입니다...

http://www.cubrid.com/faq/3794684

 

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

큐브리드 9.1부터 추가 된 MERGE INTO 구문이 지원 된다.프로그램 개발 시에 데이타 존재 유무에 따라 insert 또는 update를 수행한다.즉, 1. 저장하고자 하는 데이터 존재 여부를 select 문으로 조회2. 조회한 결과 데이터가 존재하지 않으면 insert, 존재하면 update 위 처리내용을 Merge into 구문을 사용하여, 한개의 SQL문으로 처리 할 수 있다.사용 예시는 아래와 같다.1. 테스트 테이블 생성CREATE TABL

www.cubrid.com

 

 

 

+ Recent posts