๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] MODIFY์™€ UPDATE ์ฐจ์ด์ 

by Jay Din 2023. 12. 27.
728x90
๋ฐ˜์‘ํ˜•

โœ… MODIFY vs UPDATE ๋น„๊ตํ‘œ

  `MODIFY` `UPDATE`
์šฉ๋„ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” or DBํ…Œ์ด๋ธ” ๋‘˜ ๋‹ค์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ DB ํ…Œ์ด๋ธ” ์ „์šฉ
์ž‘๋™ ๋Œ€์ƒ - ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”: ํ•ด๋‹น ํ–‰์„ ์ˆ˜์ •
- DB ํ…Œ์ด๋ธ”: ์กด์žฌํ•˜๋ฉด ์ˆ˜์ •, ์—†์œผ๋ฉด ์ถ”๊ฐ€(INSERT ํšจ๊ณผ๋„ ์žˆ์Œ)
DB ํ…Œ์ด๋ธ”์˜ ๊ธฐ์กด ๋ ˆ์ฝ”๋“œ๋งŒ ์ˆ˜์ • (INSERT ์•ˆ๋จ)
์กฐ๊ฑด ํ‚ค ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ ์กด์žฌ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ธฐ๋ณธ ํ‚ค ๊ธฐ์ค€์œผ๋กœ๋งŒ ์ˆ˜์ •.
์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๋Š” ์•ˆ๋‚˜์ง€๋งŒ ์•„๋ฌด ์ž‘์—…๋„ ์•ˆ ํ•จ
์„ฑ๋Šฅ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ˆ˜์ •์—๋Š” ๋น ๋ฆ„ DB ์ž‘์—…๋งŒ ํ•˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆด ์ˆ˜ ์žˆ์Œ
์ปค๋ฐ‹ ํ•„์š” ์—ฌ๋ถ€ DB์— ์“ฐ๋Š” ๊ฒฝ์šฐ์—” `COMMIT WORK` ํ•„์š” ๋ฌด์กฐ๊ฑด `COMMIT WORK` ํ•„์š” (DB ๋ฐ˜์˜์‹œ)
์ž๋™ ์‚ฝ์ž… ์—ฌ๋ถ€ DB์—์„œ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด INSERT ๋จ INSERT ๊ธฐ๋Šฅ ์—†์Œ (๋ฌด์‹œ๋จ)

 

`MODIFY`๋Š” ์ผ๋ฐ˜ DB์™€ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์—์„œ ๋™์ž‘ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • DB์—์„œ `MODIFY`
    → ์ง€์ •ํ•œ ํ‚ค๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด `UPDATE`,
    → ์—†์œผ๋ฉด `INSERT`๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์—์„œ `MODIFY`
    ํ•ญ์ƒ `UPDATE`์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋ฉฐ,
    → ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๐Ÿ”ง ์˜ˆ์‹œ๋กœ ๋ณด๋Š” ์ฐจ์ด

๐Ÿ”ธ 1. MODIFY –  ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”

์ธํ„ฐ๋„ํ…Œ์ด๋ธ” `lt_data`์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•จ.

LOOP AT lt_data INTO ls_data.
  ls_data-field = 'X'.
  MODIFY lt_data FROM ls_data.
ENDLOOP.

 

๐Ÿ”ธ 2. MODIFY – DB ํ…Œ์ด๋ธ”

`ZTABLE`์— `KEY = A001`์ด ์žˆ์œผ๋ฉด UPDATE, ์—†์œผ๋ฉด INSERT ๋จ.
ls_ztable-key = 'A001'.
ls_ztable-name = 'Test'.
MODIFY ztable FROM ls_ztable.

 

๐Ÿ”ธ 3. UPDATE – DB ํ…Œ์ด๋ธ”๋งŒ

 

`A001`์ด ์กด์žฌํ•  ๋•Œ๋งŒ, `name` ๊ฐ’์„ ์ˆ˜์ •.

์—†์œผ๋ฉด ์•„๋ฌด ์ผ๋„ ์•ˆ ์ƒ๊น€.

UPDATE ztable 
	SET name = 'Test' 
    WHERE key = 'A001'.

 

๐ŸŽฏ ์ •๋ฆฌ

  • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ๋‹ค๋ฃฐ ๋• → `MODIFY`
  • DB์— INSERT๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋• → `MODIFY`
  • DB์— ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋งŒ ์ •ํ™•ํžˆ ์ˆ˜์ •ํ•˜๋ ค๋ฉด → `UPDATE`

 

 

728x90
๋ฐ˜์‘ํ˜•