Versions Compared

Key

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

...

Code Block
insert_stmt ::= 'INSERT INTO' table_name ( '(' insert_column_list ')' )? 'MEATADATA'? 'VALUES' '(' value_list ')' ( 'ON DUPLICATE KEY UPDATE' ( 'SET' set_list )? )?




insert_column_list ::= column_name ( ',' column_name )*




value_list ::= value ( ',' value )*




set_list ::= column_name '=' value ( ',' column_name '=' value )*

...

Code Block
sql
sql
SET column = value [, column = value ...];


INSERT SELECT

...

insert_select_stmt:

Image Added

Code Block
insert_select_stmt ::= 'INSERT INTO TABLE_NAME [columnlist] SELECT statement' table_name ( '(' insert_column_list ')' )? select_stmt


특정 table에 대해서 SELECT 문의 수행 결과를 삽입하는 문장이다. 기본적으로는 다른 DBMS와 유사하지만 다음의 차이점이 있다.

...

Code Block
sql
sql
create table t1 (i1 integer, i2 varchar(60), i3 varchar(5));
Created successfully.

insert into t1 values (1, 'a', 'ddd' );
1 row(s) inserted.
insert into t1 values (2, 'kkkkkkkkkkkkkkkkkkkkk', 'c');
1 row(s) inserted.

insert into t1 select * from t1;
2 row(s) inserted.
create table t2 (i1 integer, i2 varchar(60), i3 varchar(5));

insert into t2 (_arrival_time, i1, i2, i3) select _arrival_time, * from t1;
4 row(s) inserted.


DELETE

...

delete_stmt:

Image Added

time_unit:

Image Added


Code Block
delete_stmt ::= 'DELETE FROM' TableNametable_name ( 'OLDEST' Numbernumber 'ROWS;' | DELETE'EXCEPT' FROMnumber TableName EXCEPT Number ROWS;

DELETE FROM TableName EXCEPT Number Time_Unit;
-- Time_Unit : YEAR | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND;

DELETE FROM TableName BEFORE DateTime_Expression;( 'ROWS' | time_unit ) | 'BEFORE' datetime_expression )? 'NO WAIT'?




time_unit ::= 'DURATION' number time_unit ( ( 'BEFORE' | 'AFTER' ) number time_unit )?


MachBase에서의 DELETE 구문은 로그 테이블에 대해서 수행 가능하다. 또한, 중간의 임의 위치에 있는 데이터를 삭제할 수 없으며, 임의의 위치부터 연속적으로 마지막(가장 오래된 로그) 레코드까지 지울 수 있도록 구현되었다.

...