1. ๋ฌธ์ ์ํฉ: ๋ฐ๋ณต๋๋ ๋๋ฏธ ๋ฐ์ดํฐ ์ฝ์ ์ ๋นํจ์จ์ฑ
๊ฐ๋ฐ์ด๋ ํ ์คํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด, test1, test2, ..., testN๊ณผ ๊ฐ์ด ๊ท์น์ ์ผ๋ก ๋ฐ๋ณต๋๋ ๋๋ฏธ(Dummy) ๋ฐ์ดํฐ๋ฅผ ๋๋์ผ๋ก ์ฝ์ ํด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ SQL ๋ฌธ๋ฒ์ธ INSERT INTO ... VALUES๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ ๊ฐ์ด 30๊ฐ์ ํ์ ์ผ์ผ์ด ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ํด์ผ ํ๋ ๋นํจ์จ์ ์ธ ์ํฉ์ ์ง๋ฉดํฉ๋๋ค.
-- ๋ฐ๋ณต ์์
์ ์๋์ผ๋ก ํด์ผ ํ๋ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ
INSERT INTO tb_master (last_login_date, master_name, mod_date, mod_user, pw, reg_date, reg_user, use_yn, master_id)
VALUES
(NULL, 'test4', NULL, NULL, 'test4', '2025-11-12T11:50:10.195+0900', 'SYSTEM', 'Y', 'test4'),
(NULL, 'test5', NULL, NULL, 'test5', '2025-11-12T11:50:10.195+0900', 'SYSTEM', 'Y', 'test5'),
-- ... (test30๊น์ง 26๋ฒ์ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ํ์) ...
(NULL, 'test30', NULL, NULL, 'test30', '2025-11-12T11:50:10.195+0900', 'SYSTEM', 'Y', 'test30');
2. ํด๊ฒฐ์ฑ : PostgreSQL์ generate_series() ํจ์ ํ์ฉ
PostgreSQL์ ์ด๋ฌํ ๋ฐ๋ณต์ ์ธ ์์ ์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ด์ฅ ํจ์ **generate_series()**๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ํจ์๋ ์ง์ ๋ ๋ฒ์์ ์ฐ์๋ ์ซ์ ์ํ์ค๋ฅผ ์์ฑํ๋ฉฐ, ์ด๋ฅผ INSERT INTO ... SELECT ๊ตฌ๋ฌธ๊ณผ ๊ฒฐํฉํ์ฌ ํ ์ค์ ์ฟผ๋ฆฌ๋ก ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค.
๐ง 3. generate_series()๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์ฝ์ ์ฟผ๋ฆฌ
๋ค์์ master_id์ pw์ test4๋ถํฐ test30๊น์ง 27๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฝ์ ํ๋ ์ฟผ๋ฆฌ์ ๋๋ค.
INSERT INTO tb_master
(last_login_date, master_name, mod_date, mod_user, pw, reg_date, reg_user, use_yn, master_id)
SELECT
NULL,
'test' || s.id, -- master_name: 'test'์ ์ซ์ ์ฐ๊ฒฐ
NULL,
NULL,
'test' || s.id, -- pw: 'test'์ ์ซ์ ์ฐ๊ฒฐ
NOW(), -- reg_date: ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ ํ์ฌ ์๊ฐ
'SYSTEM',
'Y',
'test' || s.id -- master_id: 'test'์ ์ซ์ ์ฐ๊ฒฐ
FROM
generate_series(4, 30) AS s(id);
4. ์ฟผ๋ฆฌ ์์ธ ๋ถ์
| ์ฝ๋ | ์ญํ | ์ค๋ช |
| generate_series(4, 30) | ์ํ์ค ์์ฑ | 4๋ถํฐ 30๊น์ง์ ์ ์(4, 5, 6, ..., 30)๋ฅผ ํ์ผ๋ก ์์ฑํฉ๋๋ค. |
| AS s(id) | ๋ณ์นญ ๋ถ์ฌ | ์์ฑ๋ ์ํ์ค๋ฅผ ํ ์ด๋ธ s๋ก, ๊ฐ ์ซ์๋ฅผ ์ปฌ๋ผ id๋ก ๋ณ์นญ์ ์ง์ ํฉ๋๋ค. |
| `'test' | s.id` | |
| NOW() | ํ์ฌ ์๊ฐ | reg_date ํ๋์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ ์ ํํ ํ์ฌ ์๊ฐ์ ์ฝ์ ํฉ๋๋ค. (์๋ณธ ์ฟผ๋ฆฌ์ ํ๋์ฝ๋ฉ๋ ์๊ฐ ๋์ ์ฌ์ฉ) |
| INSERT INTO ... SELECT | ๋๋ ์ฝ์ | generate_series()๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฟผ๋ฆฌ๋ก ํ ์ด๋ธ์ ์ฝ์ ํฉ๋๋ค. |
5. ๊ฒฐ๋ก ๋ฐ ์์ฉ
generate_series()๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ ๋ฐ๋ณต ์์ ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์ผ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ์ ์ด๊ธฐ ๋ฐ์ดํฐ(Initial Data)๋ฅผ ์ฑ์ฐ๊ฑฐ๋ ํ ์คํธ๋ฅผ ์ํ ๋๋์ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ฐ๋ฐ ์๊ฐ์ ์ ์ฝํ๊ณ ๋ ๋ณธ์ง์ ์ธ ๊ฐ๋ฐ ์์ ์ ์ง์คํ์๊ธธ ๋ฐ๋๋๋ค!
#PostgreSQL #SQL #๋ฐ์ดํฐ๋ฒ ์ด์ค #generate_series #INSERT #๊ฐ๋ฐํ #๊ฐ๋ฐํจ์จํ #๋๋ฏธ๋ฐ์ดํฐ #DummyData
'๊ฐ๋ฐ ์ผ์ง ๐ฉโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์คํ๋ง๋ถํธ ํ๋ก์ ํธ ๊ตฌ์กฐ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ๋ฉด ์ข์๊น? (0) | 2025.11.18 |
|---|---|
| AxiosError ์๋ฐ์คํฌ๋ฆฝํธ ๋ก๊ทธ ์บก์ณํ๋ฉด (0) | 2025.11.13 |
| JWT ์ธ์ฆ ๊ตฌํ ๊ฐ์ด๋ (Spring Security ์์ด) (0) | 2025.11.11 |
| spring boot ๊ณตํตํ ํํฉ ๋ฐ ๊ฐ์ ์ (1) | 2025.11.11 |
| Base64 ์ธ์ฝ๋ฉ์ด๋? (0) | 2025.11.11 |