...
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 | ||||
---|---|---|---|---|
| ||||
SET column = value [, column = value ...]; |
INSERT SELECT
...
insert_select_stmt:
Code Block |
---|
insert_select_stmt ::= 'INSERT INTO TABLE_NAME [columnlist] SELECT statement' table_name ( '(' insert_column_list ')' )? select_stmt |
특정 table에 대해서 SELECT 문의 수행 결과를 삽입하는 문장이다. 기본적으로는 다른 DBMS와 유사하지만 다음의 차이점이 있다.
...
Code Block | ||||
---|---|---|---|---|
| ||||
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:
time_unit:
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 구문은 로그 테이블에 대해서 수행 가능하다. 또한, 중간의 임의 위치에 있는 데이터를 삭제할 수 없으며, 임의의 위치부터 연속적으로 마지막(가장 오래된 로그) 레코드까지 지울 수 있도록 구현되었다.
...