MOVE는 ALTIBASE HDB 에서만 제공되는 DML 이며, 소스 테이블에서 원하는 조건의 레코드를 찾아 타겟 테이블로 이동할 때 사용합니다.
이동이라는 개념을 사용하기 때문에 소스 테이블에서 타겟 테이블로 이동된 데이터는 소스 테이블에서는 삭제가 되고, 타겟 테이블에만 존재하게 됩니다.
MOVE INTO target_table_name FROM source_table_name [WHERE conditions];
T1테이블에서 T2테이블로 전체 레코드를 이동하시오.
iSQL> SELECT COUNT(*) FROM t1;
COUNT
-----------------------
5
1 row selected.
iSQL> SELECT COUNT(*) FROM t2;
COUNT
-----------------------
0
1 row selected.
iSQL> MOVE INTO t2
FROM t1;
5 rows moved.
T1테이블에서 T2테이블로 c1=10 인 레코드만 이동하시오
iSQL> SELECT * FROM t1;
C1 C2
-----------------------
5 KIM
10 LEE
15 HAN
20 PARK
4 row selected.
iSQL> SELECT * FROM t2;
C1 C2
-----------------------
No row selected.
iSQL> MOVE INTO t2
FROM t1
WHERE c1=10 ;
1 rows moved.
iSQL> SELECT * FROM t1;
C1 C2
-----------------------
5 KIM
15 HAN
20 PARK
3 row selected.
iSQL> SELECT * FROM t2;
C1 C2
-----------------------
10 LEE
1 row selected.
MOVE INTO target_table_name[(column_name, ...)] FROM source_table_name [(column_name, ...)] [WHERE conditions];
T1 테이블의 c1=4를 만족하는 데이터 중 c1과 c2 칼럼의 데이터만 T2 테이블로 이동하시오
iSQL> MOVE INTO t2(c1, c2) FROM t1(c1, c2) WHERE t1.c2 = 4;
MOVE 구문으로 이동하는 레코드의 수를 제한할 때, LIMIT 을 사용할 수 있습니다.
MOVE INTO target_table_name FROM source_table_name [WHERE conditions] LIMIT [start_index ,] row_count;
CUSTOMER 테이블에서 고객번호가 7001011111111과 7912319999999 사이인 레코드 중 3건만 customer_new 테이블로 이동하시오.
iSQL> MOVE INTO customer_new
FROM customer
WHERE cno BETWEEN 7001011111111 AND 7912319999999
LIMIT 3;
3 rows moved.
- 강좌 URL : http://www.gurubee.net/lecture/2185
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.