์๋ ํ์ธ์.
๊ณต๋ถํ๋ ์ ์ด์ ๋๋ค.
์์ ํฌ์คํ ์ ์ด์ด์ ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ํด์ ๊ณต๋ถํด๋ณด์.
์์ํด๋ณด์.
ํธ๋์ญ์ (transaction)
์ฃผ๋ฌธ์ด ๋ฐ์ํ์ ๋ ๋ฐ์ฃผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
insert into '์ฃผ๋ฌธ' values (4,'2021-11-07,2');
insert into '์ฃผ๋ฌธ์ํ' values(4, '0001',2);
insert into '์ฃผ๋ฌธ์ํ' values(4,'0002',3);
์ด๋ฅผ ํธ๋์ญ์ (transaction)์ผ๋ก ์ฒ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์์ฑ์ด ๋๋ค.
start transaction;
insert into '์ฃผ๋ฌธ' values (4,'2021-11-07,2');
insert into '์ฃผ๋ฌธ์ํ' values(4, '0001',2);
insert into '์ฃผ๋ฌธ์ํ' values(4,'0002',3);
commit;
์ด์ฒ๋ผ ํธ๋์ญ์ ์ ์ฌ์ฉํด SQL ๋ช ๋ น์ ํ๋๋ก ๋ฌถ์ด ์คํํ ์ ์๋ค.
ํธ๋์ญ์ ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ๋ฑ๋ก ์ฒ๋ฆฌ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋จํด์ง๋ค.
๊ทธ๋ฌ๋ ํ๋์ ๋ช ๋ น์ ํธ๋์ญ์ ์ ๊ฑธ์ด ์คํํ๋ ๊ฒ์ ๋ณ๋ก ์๋ฏธ๊ฐ ์๋ค.
ํธ๋์ญ์ ๋ด์์ ์คํํ๋ ๋ณต์์ SQL ๋ช ๋ น์ ์ธํธ ๋จ์๋ก ์ ํจ/๋ฌดํจ๊ฐ ๋๋ค.
์ฆ, ๋ฐ๋์ ์ธํธ๋ก ์คํํ๊ณ ์ถ์ SQL ๋ช ๋ น์ ํธ๋์ญ์ ์ ํ๋๋ก ๋ฌถ์ด ์คํํ๋ค๋ ๊ฒ์ด๋ค.
๋กค๋ฐฑ๊ณผ ์ปค๋ฐ(Rollback and Commit)
ํธ๋์ญ์ ์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํด๋ ํธ๋์ญ์ ์ ๋กค๋ฐฑํด์ ์ข ๋ฃํ ์ ์๋ค.
์๋ฌด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ฉด ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๊ณ ํธ๋์ญ์ ์ ์ข ๋ฃํ๋๋ฐ, ์ด๋ ์ปค๋ฐ์ ์ฌ์ฉํ๋ค.
TRANSACTION
COMMIT
ROLLBACK
ํธ๋์ญ์ ์ ์์ํ ๋๋ START TRANSACTION ๋ช ๋ น, ์ปค๋ฐ ํ ๋ COMMIT ๋ช ๋ น, ๋กค๋ฐฑ ํ ๋ ROLLBACK ๋ช ๋ น์ ์ฌ์ฉํ๋ค.
ํธ๋์ญ์ ๋ด์์ ์คํ๋ SQL ๋ช ๋ น์ ์์ ๋ฐ์ดํฐ ์์ญ์์ ์ํ๋๋ค๊ฐ(์ค์ ํ ์ด๋ธ์๋ ๋ฐ์X), COMMIT ๋ช ๋ น์ ๋ด๋ฆฌ๋ฉด ์์ ๋ฐ์ดํฐ ์์ญ์์ ์ ์ ๋ฐ์ดํฐ ์์ญ์ผ๋ก ๋ณ๊ฒฝ์ด ์ ์ฉ๋๋ค.
ROLLBACK ๋ช ๋ น์ ๋ด๋ฆฌ๋ฉด ์์ ๋ฐ์ดํฐ ์์ญ์์์ ์ฒ๋ฆฌ๋ ๋ฒ๋ ค์ง๋ค.
โ
ROLLBACK์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋์ง ์๋๋ก ํ๋ ๋ชฉ์ ์ผ๋ก ์ฃผ๋ก ์ฌ์ฉํ์ง๋ง, ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์๋ ROLLBACK์ ํ๋ฉด ๋ณ๊ฒฝํ ๋ด์ฉ์ ํ๊ธฐ๋๋ค.
๋ฐ๋๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ผ๋ COMMIT์ ํ๋ฉด ๋ฌธ์ ์์ด ์คํ๋ SQL ๋ช ๋ น์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ทธ๋๋ก ๋ฐ์๋๋ค. ์ฆ Commit์ ์คํํ ๋๋ ํญ์ ์ฃผ์ํ์.
๊ฒฐ๋ก
SQL๋ฌธ๋ค ํน์ง์ด ์ด๋ค ๊ฒ์ ์คํํ๋ฉด ๋ฐ๋ก ๋ฐ์์ด๋๊ณ , db์ ๋จ๋ ๊ฒ๋ค์ด ์๊ณ , ์ด๋ค ๊ฒ๋ค์ ์์์ ์ธ ๋ณํ๋ง ์ฃผ๋ ๊ฒ๋ค์ด ์๋๋ฐ, ์ฝ๊ฐ python์ pandas์ drop ์ inplace = True ๋ก ์ค์ ํ๋, False ๋ก ์ค์ ํ๋ ๊ทธ๋ฐ ๋๋์ผ๋ก ๋ฐ์๋ค์ด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๊ณต๊ฐ ๋ฒํผ์ ํตํด ๋ ์ข์ ๊ธ์ ์ธ ์ ์๊ฒ ๋์์ฃผ์ธ์~
'๐์๊ฒฉ์ฆ > ๐SQLD๊ฐ๋ฐ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[sql ๊ณต๋ถ๋ฒ] ๋ ผ๋ ๋๋ด๊ธฐ (0) | 2021.11.07 |
---|---|
[SQL] count, groupby, subquery (0) | 2021.11.07 |
[SQL] DB ์ค๊ณ(์ ๊ทํ,ROLLBACK, COMMIT) 1ํธ (0) | 2021.11.07 |
์ ์์๋ฃ (0) | 2021.11.04 |
1์ด๋ง์ sqld ์ค์ต ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (0) | 2021.11.02 |