Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing Internal Data →  Internal Tables →  Internal Tables - Overview →  Table Keys 

Duplicate Unique Keys

When rows are inserted into internal tables with a unique primary key or unique secondary key, duplicates can occur with respect to one or more of these keys. Depending on whether the insert takes place as a single record operation or a mass operation, the ABAP runtime environment responds as follows to an attempt to insert an entry with duplicate key values:

  • First, it checks whether duplicate key values would occur with respect to the primary key. The system behavior is as follows depending on the operation:
  • When single rows are inserted using the variant

    INSERT wa INTO TABLE itab

    duplicate with respect to the primary key are ignored and sy-subrc is set to 4. This is often used to filter out duplicates when the table is constructed.
  • A check is then made to see whether duplicate key values would occur with respect to any existing unique secondary keys. If this is the case,
  • an exception of the class CX_SY_ITAB_DUPLICATE_KEY is raised for the statements INSERT and APPEND, if the operation is a single record operation.
  • For all other insert and assignment operations, particularly for all mass operations, the runtime error ITAB_DUPLICATE_KEY occurs.

Other versions: 7.31 | 7.40 | 7.54


Example

The first INSERT statement does not insert a line and sets sy-subrc to the value 4. The second INSERT statement produces a runtime error.

DATA itab TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line. 

itab = VALUE #( ( 1 ) ( 2 ) ( 3 ) ). 

INSERT 2 INTO TABLE itab. 

INSERT 2 INTO itab INDEX 2.