[TypeORM] ์ฟผ๋ฆฌ๋นŒ๋”: insert

[์›๋ณธ ๋งํฌ]

์ฟผ๋ฆฌ๋นŒ๋”๋ฅผ ํ†ตํ•ด insert query๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ์—”ํ‹ฐํ‹ฐ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

[์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”]๊ณผ ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ [ํฌ์ŠคํŠธ ํ…Œ์ด๋ธ”]์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋Š” ๋”ธ๋ž‘ 2๊ฐœ๋งŒ ๋“ค์–ด์žˆ๋Š” ์ƒํƒœ๋‹ค.




๋‹จ์ผ ํ–‰ ์‚ฝ์ž…ํ•˜๊ธฐ

๊ทธ๋ƒฅ ์ƒ๊ฐ์—†์ด ๊ฐ’ ํ•˜๋‚˜๋ฅผ insertํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค. insert, into, values ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ์†์œผ๋กœ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด ์ฟผ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋  ๊ฒƒ์ด๋‹ค.

์ฟผ๋ฆฌ๋นŒ๋” ๊ฐ์ฒด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด execute ๋ฉ”์„œ๋“œ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์‚ฝ์ž…๋œ ๋ชฉ๋ก๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ€๊ฐ• ๋ฐ˜ํ™˜ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ๋ญ˜ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ PK id๊ฐ’๋งŒ ๋ฐ˜ํ™˜์ด ๋๋‹ค.

์ฐ์–ด๋ณด๋ฉด ์ž˜ ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.




๋‹ค์ค‘ ํ–‰ ์‚ฝ์ž…

๋‹จ์ผ ์‚ฝ์ž…๊ณผ ๋ณ„๋กœ ๋‹ค๋ฅผ ๊ฒƒ๋„ ์—†๋‹ค. ๊ทธ๋ƒฅ values์— ๋‹จ์ผ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹Œ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ฐฐ์—ด์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ๊ทธ๋ƒฅ ์ž˜ ๋„ฃ์–ด์ค„ ๊ฒƒ์ด๋‹ค.




returning ์ ˆ

insertํ•œ ๊ฒฐ๊ณผ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฝ์ž…ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.
๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ• ๋งŒํ•œ ๊ธฐ๋Šฅ์ด returning์œผ๋กœ, ์—ฌ๊ธฐ์—๋‹ค๊ฐ€ ์กฐํšŒํ•  ์ปฌ๋Ÿผ๋ช…์„ ์จ์ฃผ๋ฉด ๋œ๋‹ค.

returning("*") ์ฒ˜๋Ÿผ ์“ฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ธด ํ•œ๋ฐ, mysql์—์„œ๋Š” ์•ˆ๋œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” db๋ณ„ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌํŠผ ์ €๋ ‡๊ฒŒ ํ•ด๋†“๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›์•„๋ณด๋ฉด

์ด์ œ ๊ฐ’์ด ์ž˜ ๋‚ ๋ผ์˜ฌ ๊ฒƒ์ด๋‹ค.

identifiers๋Š” PK๊ฐ’, generatedMaps๋Š” ๋ฐ˜ํ™˜๋œ ๊ฐ’์˜ ๋ฐฐ์—ด์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  raw๋Š” ํƒ€์ดํ•‘ ์—†์ด ๋‚˜์˜ค๋Š” any ๋ฐ˜ํ™˜๊ฐ’์ด๋‹ค.

๊ทธ๋ ‡๋‹ค.


์ฐธ์กฐ
https://typeorm.delightful.studio/classes/query_builder_result_insertresult.insertresult.html
https://orkhan.gitbook.io/typeorm/docs/insert-query-builder