Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

데이터 입력 (Insert)

휘발성 테이블의 데이터 입력은 입력(Insert)은 다음과 같다.

Code Block
languagesql
Mach> create volatile table vtable (id integer, name varchar(20));
Created successfully.
Mach> insert into vtable values(1, 'west device');
1 row(s) inserted.
Mach> insert into vtable values(2, 'east device');
1 row(s) inserted.
Mach> insert into vtable values(3, 'north device');
1 row(s) inserted.
Mach> insert into vtable values(4, 'south device');
1 row(s) inserted.

데이터 입력 (Append)

마크베이스에서 제공하는 빠른 실시간 데이터 입력 API이다.

C, C++, C#, Java, Python, PHP, Javascript 를 이용하여 입력할 수 있다.

Code Block
Mach> create volatile table vtable (id integer, value double);


Code Block
SQL_APPEND_PARAM sParam[2];
for(int i=0; i<10000; i++)
{
	sParam[0].mInteger  = i;
	sParam[1].mDouble   = i;
	SQLAppendDataV2(stmt, sParam) != SQL_SUCCESS)
}

Cluster Edition의 경우 Append 입력은 Leader Broker에서 수행해야 한다.

세부 내용은 SDK 가이드를 참고한다.

데이터 갱신

휘발성 테이블의 데이터 입력 시, ON DUPLICATE KEY UPDATE 절을 사용해 중복된 기본 키 값을 가진 데이터의 갱신을 할 수 있다.

...

  • 휘발성 테이블에 기본 키가 지정되어 있어야 한다.

  • 삽입하고자 하는 값에, 기본 키 값이 반드시 포함되어야 한다. 


Code Block
languagesql
Mach> create volatile table vtable (id integer primary key, direction varchar(10), refcnt integer);
Created successfully.
Mach> insert into vtable values(1, 'west', 0);
1 row(s) inserted.
Mach> insert into vtable values(2, 'east', 0);
1 row(s) inserted.
Mach> select * from vtable;
ID          DIRECTION   REFCNT      
----------------------------------------
1           west       0           
2           east        0           
[2] row(s) selected.

Mach> insert into vtable values(1, 'south', 0);
[ERR-01418 : The key already exists in the unique index.]
Mach> insert into vtable values(1, 'south', 0) on duplicate key update;
1 row(s) inserted.

Mach> select * from vtable;
ID          DIRECTION   REFCNT      
----------------------------------------
1           south        0           
2           east        0           
[2] row(s) selected.

...