ํ ์ด๋ธ์ ์ด๋ค ๋ฐ์ดํ๋ฅผ insert, update, delete๋ฅผ ํ ๋๋ ํ ๋ช ์ ์ฌ์ฉ์๋ง์ด ํด๋น ํ ์ด๋ธ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํด์ค๋ค.
๊ทธ ๋ฐ๋ฐ ๋ง์ฝ Aํ ์ด๋ธ์์ ๋ฐ์ดํ๋ฅผ ์ฝ์ด์์ ์ด์ ๊ด๋ จ๋ ๋ด์ฉ์ Bํ ์ด๋ธ์ ๋ฃ์ผ๋ ค๋๋ฐ Bํ ์ด๋ธ์ FK๋ก Aํ ์ด๋ธ์ PK๊ฐ ๊ฑธ๋ ค์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๋๋ Aํ ์ด๋ธ์์ pk๊ฐ 1์ธ ๋ฐ์ดํ๋ฅผ ์ฝ์ด์์ Bํ ์ด๋ธ์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ค์ผํ๋๋ฐ ๋ฐ์ดํ๋ฅผ ์ฝ์ด์์ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ ์ ๋๊ตฐ๊ฐ๊ฐ ๋ฐ์ดํ 1์ ์ง์๋ฒ๋ ธ๋ค๋ฉด?? ๋ด๊ฐ Bํ ์ด๋ธ์ ์ ๋ฐ์ดํธ๋ฅผ ์๋ํ ๋ fk ์ค๋ฅ๊ฐ ๋ ๊ฒ์ด๋ค. pk๊ฐ ์ฌ๋ผ์ก์ผ๋ ๋ง์ด๋ค.
์ ์ด๋ด ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด select ... for update ์ด๋ค.
for
update๋ ์ฝ์ด์จ ๋ชจ๋ rows์ ๊ทธ rows์ ๊ด๋ จ๋ ์ธ๋ฑ์ค ์ํธ๋ฆฌ๊น์ง lock์ ํ๋ค. ์ด๋ update๋ฌธ์ ์ฌ์ฉํ์
๋์ ๋์ผํ ๊ฒ์ด๋ค. for update๋ก ์คํ๋ select๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋ ์
๋ฐ์ดํธ ๊ด๋ จ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ๋
๋ค๋ฅธ select ... for update ๋ฌธ ์ญ์ ๊ธฐ์กด ์ธ์
์์ commit์ด๋ rollback์ด ์คํ๋๊ธฐ ์ ๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ
์ต์ ์ ๋ณด๋ฅผ selectํ๊ฒ ๋๋ค.
์ฌ์ฉ๋ฒ์ ๋จ์ํ๋ค.
SQL > select * from emp for update;
'๐ป Programming > Oracle 11g' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle/SQL] ํน์ ์ฌ์ฉ์์ ๊ถํ ์กฐํ (0) | 2015.04.20 |
---|---|
[์ค๋ผํด/oracle] Oracle Database Character set ๋ณ๊ฒฝ(EUC-KR์ UTF8 ๋ณ๊ฒฝ) (0) | 2015.04.20 |
[์ค๋ผํด/SQL] ์ปฌ๋ผ์ ์ธ๋ํค ์ ์ฝ ์ถ๊ฐํ๊ธฐ ( ALTER TABLE ) (0) | 2015.04.20 |
[์ค๋ผํด/SQL] ํ ์ด๋ธ์ ์ปฌ๋ฝ ์ถ๊ฐ/์ญ์ ํ๊ธฐ (0) | 2015.04.20 |
[์ค๋ผํด/oracle] Insert ์๋ ๋์ด๊ธฐ (0) | 2015.04.20 |