...
휘발성 테이블의 데이터 입력은 다음과 같다.
Code Block | ||
---|---|---|
| ||
iFlux>Mach> create volatile table vtable (id integer, name varchar(20)); Created successfully. iFlux>Mach> insert into vtable values(1, 'west device'); 1 row(s) inserted. iFlux>Mach> insert into vtable values(2, 'east device'); 1 row(s) inserted. iFlux>Mach> insert into vtable values(3, 'north device'); 1 row(s) inserted. iFlux>Mach> insert into vtable values(4, 'south device'); 1 row(s) inserted. iFlux> |
데이터 갱신
휘발성 테이블의 데이터 입력 시, ON DUPLICATE KEY UPATE UPDATE 절을 사용해 중복된 기본 키 값을 가진 데이터의 갱신을 할 수 있다.
...
휘발성 테이블에 기본 키가 지정되어 있어야 한다.
삽입하고자 하는 값에, 기본 키 값이 반드시 포함되어야 한다.
Code Block | ||
---|---|---|
| ||
iFlux>Mach> create volatile table vtable (id integer primary key, direction varchar(10), refcnt integer); Created successfully. iFlux>Mach> insert into vtable values(1, 'west', 0); 1 row(s) inserted. iFlux>Mach> insert into vtable values(2, 'east', 0); 1 row(s) inserted. iFlux>Mach> select * from vtable; ID DIRECTION REFCNT ---------------------------------------- 1 west 0 2 east 0 [2] row(s) selected. iFlux>Mach> insert into vtable values(1, 'south', 0); [ERR-01418 : The key already exists in the unique index.] iFlux>Mach> insert into vtable values(1, 'south', 0) on duplicate key update; 1 row(s) inserted. iFlux>Mach> select * from vtable; ID DIRECTION REFCNT ---------------------------------------- 1 south 0 2 east 0 [2] row(s) selected. iFlux> |
갱신할 데이터 값을 지정
위와 비슷하지만, 삽입할 데이터 값과 다른 컬럼 값으로 갱신해야 하는 경우에는 ON DUPLICATE KEY UPDATE SET
절을 통해 지정할 수 있다. SET
절 아래에 갱신할 데이터 값을 지정할 수 있다.
...
기본 키 값을 갱신할 데이터 값으로 지정할 수 없다.
SET
절에서 명시되지 않은 컬럼들의 값은 갱신되지 않는다.
Code Block | ||
---|---|---|
| ||
iFlux>Mach> create volatile table vtable (id integer primary key, direction varchar(10), refcnt integer); Created successfully. iFlux>Mach> insert into vtable values(1, 'west', 0); 1 row(s) inserted. iFlux>Mach> insert into vtable values(2, 'east', 0); 1 row(s) inserted. iFlux>Mach> select * from vtable; ID DIRECTION REFCNT ---------------------------------------- 1 west 0 2 east 0 [2] row(s) selected. iFlux>Mach> insert into vtable values(1, 'west', 0) on duplicate key update set refcnt = 1; 1 row(s) inserted. iFlux> Mach> select * from vtable; ID DIRECTION REFCNT ---------------------------------------- 1 west 1 2 east 0 [2] row(s) selected. iFlux> |