์˜ค๋ผํด์—์„œ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด PRIMARY KEY๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด๋ฅผ FK๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๊ทธ๋งŒ ORA-02270 ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งŒ๋‚˜๊ฒŒ ๋œ ์ƒํ™ฉ์€ ์ด๋ ‡๋‹ค.

 

ํ…Œ์ด๋ธ” A์™€ B๊ฐ€ ์žˆ๋‹ค.

ํ…Œ์ด๋ธ” A๋Š” a๋ผ๋Š” PK๊ฐ€ ์žˆ๊ณ  ํ…Œ์ด๋ธ” B๋Š” (a, b)๋ฅผ ๋ณตํ•ฉPK๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค.

์ž, ์—ฌ๊ธฐ์„œ A์™€ Bํ…Œ์ด๋ธ”์— ์ปฌ๋Ÿผc๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ณตํ•ฉPK๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ คํ–ˆ๋‹ค.

์ฆ‰, A์˜ PK๋Š” (a, c), ๊ทธ๋ฆฌ๊ณ  B์˜ PK๋Š” (a, b, c)๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  B์˜ a, c๋Š” FK๋กœ A์˜ a, c๋ฅผ ์ฐธ์กฐํ•ด์•ผํ•œ๋‹ค.

 

์ด๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด์„œ ์ƒ๊ฐํ–ˆ๋˜ ์ˆœ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

1. ํ…Œ์ด๋ธ” A, B์˜ PK๋ฅผ DROPํ•œ๋‹ค.

2. ํ…Œ์ด๋ธ” A, B์— ์ปฌ๋Ÿผc๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

3. ํ…Œ์ด๋ธ” A์˜ PK๋กœ (a, c)๋ฅผ ์„ ์–ธํ•œ๋‹ค. 

3. ํ…Œ์ด๋ธ” B์˜ a๋ฅผ FK๋กœ ์„ ์–ธํ•˜๋ฉด์„œ A์˜ a๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•œ๋‹ค.

 - alter table B add foreign key (a) references A(a);

4. ํ…Œ์ด๋ธ” B์˜ c๋ฅผ FK๋กœ ์„ ์–ธํ•˜๋ฉด์„œ A์˜ c๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•œ๋‹ค.

 - alter table B add foreign key (c) references A(c);

5. ํ…Œ์ด๋ธ” B์˜ PK๋กœ (a, b, c)๋ฅผ ์„ ์–ธํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ 3๋ฒˆ์—์„œ 02270 ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด ์—๋Ÿฌ๋Š” UNIQUE KEY๋‚˜ PK๊ฐ€ ์•„๋‹Œ๊ฒƒ์„ ์ฐธ์กฐํ•˜๋ ค๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ํ…Œ์ด๋ธ” A์˜ PK๋Š” a๋‚˜ c๊ฐ€ ์•„๋‹Œ (a, c)์ธ ๊ฒƒ์ด๋‹ค.

ํ•˜์—ฌ 3, 4๋ฒˆ ๊ณผ์ •์„ ๋ฌถ์–ด์„œ ํ…Œ์ด๋ธ” B์˜ FK๋กœ B์˜ (a, c)๊ฐ€ A์˜ (a, c)๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์„ค์ •ํ•˜์˜€๋”๋‹ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

 - alter table B add foreign key (a, c) references A(a, c);