쌓고 쌓다

Primary, Secondary Key와 WITH TABLE KEY, WITH KEY 차이점 본문

SAP/ABAP

Primary, Secondary Key와 WITH TABLE KEY, WITH KEY 차이점

승민아 2025. 11. 15. 12:39
반응형

Primary Key, Secondary Key

PRIMARY_KEY라는 키워드를 통해서 기본 키(Primary Key)를 설정할 수 있다.
 

 

PRIMARY_KEY가 Primary Key
CITY_KEY, COUNTRY_KEY가 Secondary Key가 된다.
 

- PRIMARY_KEY를 기재하지 않으면 기본으로 포함된것으로 간주한다. -

위의 선언으로 테이블을 만든다면

 
 

PRIMARY_KEY가 정의되어 있다.
 
아래는 PRIMARY_KEY와 WITH NON-UNIQUE KEY를 생략하고 선언한 테이블이다. 
 

"DATA GT_SPFLI TYPE TABLE OF SPFLI"로 선언하면
PRIMARY_KEY라는 이름으로 모든 CHAR 필드를 기본키로 만든다.
 
PRIMARY_KEY를 생략하고 WITH UNIQUE KEY만 작성한 것과
모두 생략한 것에 차이가 있다.
 
전자의 경우 작성한 키로 PRIMARY_KEY를 자동으로 생성해주며
후자의 경우 모든 CHAR 키로 PRIAMRY_KEY를 생성한다.
 

READ TABLE

1. Primary Key

 

위의 3가지 방법 모두 동일한 방법이다.
 

2. Secondary Key

WITH TABLE KEY는 키 필드에 사용하는 문법이라 생각했지만 
Secondary Key에도 WITH TABLE KEY를 사용한다.
 

보조 키(Secondary Key)에 정의된 모든 키 필드를 명시해줘야한다.
 
 
만약!
 
READ TABLE INDEX 1을 했다면
 
Secondary Key를 기준으로 정렬된 데이터를 반환하므로
의도치 않은 데이터가 나올 수 있음을 주의하자!
 
위의 SORTED KEY인 COUNTRY_KEY는
COUNTRYFR 필드 기준으로 정렬되어 INDEX 1을 뽑아냄을 주의하자!
 

WITH TABLE KEY와 WITH KEY 차이점

WITH TABLE KEY를 사용하면 Internal Table의 모든 키 필드를 명시해줘야한다.
 
WITH KEY는 모든 키 필드를 명시 안해도 된다.
 
그리고
 
BINARY SEARCH 부분에서 차이점을 갖는다.

출처 : https://kyoshins.tistory.com/25

WITH KEY를 사용할땐 정렬을하고 BINARY SEARCH를 사용하도록하자.
안하면 속도가 많이 느리다.

반응형