1. INSERT 구문
INSERT INTO <target> <lines>.
<f2> [ASCENDING | DESCENDING] ...
- 테이블에 하나 또는 여러 개의 데이터를 삽입하면, <target>은 테이블 이름으로, 동적으로 선언할 수 있다.
1) single line
INSERT INTO <target> VALUES <wa>.
INSERT <target> FROM <wa>.
INSERT <dbtab>.
첫번째 data의 gs_scarr을 출력한 것은 메모리에 넣은 변수이고, 두번째 data gs_scarr은 db에 있는 scarr의 내용을 select로 확인할 수 있다.
2) several lines
- 항공사 운항일정을 저장하는 spfli테이블에 데이터를 추가하고 출력해보았다.
잘나옴!
하지만 위 출력결과는 DB로 부터 읽어온 결과가 아닌 메모리상 내부테이블을 읽어온것
DB에 있는 내용을 출력하고 싶으면 아래 코드로 컴파일하면 된다.
SELECT * INTO TABLE gt_spfli FROM spfli WHERE carrid = 'KO'.
LOOP AT gt_spfli INTO gs_spfli.
WRITE: / gs_spfli-carrid, gs_spfli-connid, gs_spfli-cityfrom, gs_spfli-cityto.
ENDLOOP.
INSERT spfli FROM TABLE gt_spfli ACCEPTING DUPLICATE KEYS.
- INSERT는 기본적으로 중복 키가 있으면 RUN TIME ERROR가 발생함
- 위와 같이 INSERT를 쓰면 중복 키인 행은 건너뛰고, 정상적인 행은 삽입함
전체적인 INSERT 구문 종류 정리
1. INSERT INTO … VALUES
- 한 건(insert one row) 삽입할 때 사용
DATA: gs_scarr TYPE scarr.
gs_scarr-carrid = 'KO'.
gs_scarr-carrname = 'Air Korea'.
gs_scarr-url = 'https://www.airkorea.co.kr/'.
INSERT INTO scarr VALUES gs_scarr.
- VALUES 뒤에 구조체를 넘겨서 한 줄만 삽입
2. INSERT … FROM TABLE
- 내부 테이블 전체(insert multiple rows) 삽입할 때 사용
DATA: gt_spfli TYPE TABLE OF spfli.
" gt_spfli에 데이터 채우기...
INSERT spfli FROM TABLE gt_spfli ACCEPTING DUPLICATE KEYS.
요약
구문 | 용도 | 특징 |
INSERT INTO tab VALUES wa | 단일 행 삽입 | SQL과 유사 |
INSERT tab FROM TABLE itab | 여러 행 삽입 | ABAP 전용 구문 |
INSERT ... ACCEPTING DUPLICATE KEYS | 중복 무시하고 삽입 | ABAP 고유 기능 |
'SAP' 카테고리의 다른 글
easy abap 13. Delete (0) | 2025.05.09 |
---|---|
easy abap 12. Update (0) | 2025.05.09 |
easy abap 10. select - join & 그 외 문법 (0) | 2025.05.09 |
easy abap 09. SELECT (0) | 2025.05.08 |
easy abap 08. R/3 Architecture, OPEN SQL (0) | 2025.05.07 |