์์ฝ
ALTER๊ธฐ๋ฅ: ํ ์ด๋ธ ๊ทธ ์์ฒด ๋๋ ํ ์ด๋ธ ๋ด ์ด, ์ ์ฝ์กฐ๊ฑด์ ์์ ํ๋ ๊ฒฝ์ฐ ํ์ฉ- ์์ ๋์ ์ง์ (ํ ์ด๋ธ, ์ปฌ๋ผ, ์ ์ฝ์กฐ๊ฑด, ๋ฐ์ดํฐํ์ )
table,column,constraint,type- ์์ ์ฌํญ ๋ช ๋ น์ด ์ ๋ ฅ
rename: ํ ์ด๋ธ ๋ฐ ์ด ์ด๋ฆ ๋ณ๊ฒฝadd: ์๋ก์ด ์ด ๋ฐ ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐdrop: ๊ธฐ์กด ์ด ๋ฐ ์ฌ์ ์ ์ฝ์กฐ๊ฑด ์ ๊ฑฐ
1. ํ ์ด๋ธ ์์
๊ธฐ์กด์ ์์ฑํ ํ ์ด๋ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝ
alter table old_table_name rename to NEW_TABLE_NAME2. ์ด ์์
2.1 ์ด ์์ฑ ๋ฐ ์ญ์
- ๋ฐ์ดํฐ ํ์ ์์ฑ ํ์
-- 1. ์ด ์์ฑ
alter table ํ
์ด๋ธ๋ช
add column ์ปฌ๋ผ๋ช
1 integer,
add column ์ปฌ๋ผ๋ช
2 char(20)
-- 2. ์ด ์ญ์
alter table ํ
์ด๋ธ๋ช
drop column ์ปฌ๋ผ๋ช
2.2 ์ด ์ด๋ฆ ๋ณ๊ฒฝ
PostgreSQL์ ๊ฒฝ์ฐ ํ ๋ช ๋ น๋ฌธ์ ํ๋์ ์ด ์ด๋ฆ๋ง ๋ณ๊ฒฝ ๊ฐ๋ฅ
alter table ํ
์ด๋ธ๋ช
rename column OLD_์ปฌ๋ผ๋ช
1 to NEW_์ปฌ๋ผ๋ช
1
alter table ํ
์ด๋ธ๋ช
rename column OLD_์ปฌ๋ผ๋ช
2 to NEW_์ปฌ๋ผ๋ช
22.3 ์ด ๋ฐ์ดํฐ ํ์ ๋ณ๊ฒฝ
alter์ฌ์ฌ์ฉtype์ ํตํด ๋ฐ์ดํฐํ์ ์ ๋ณ๊ฒฝํ ๊ฒ์ด๋ผ๋ ๊ฒ์
alter table ํ
์ด๋ธ๋ช
alter column ์ปฌ๋ผ๋ช
type ๋ณ๊ฒฝํ _๋ฐ์ดํฐํ์
3. ์ ์ฝ์กฐ๊ฑด(PK, index ๋ฑ) ์์
3.1 ์ฌํ PK ์ถ๊ฐ
๊ธฐ์กด์ ์์ฑํ ํ ์ด๋ธ์์ PK๋ฅผ ์๋กญ๊ฒ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ํ์ฉ PK ์ด๋ฆ์ ์ง์ ํด์ค์ผํจ
alter table ํ
์ด๋ธ๋ช
add constraint PK_name primary key (์ปฌ๋ผ๋ช
);3.2 ์ฌ์ PK ์ ๊ฑฐ
- ๊ธฐ์กด PK ์ ์ฝ ์ด๋ฆ ํ์ธ
select conname
from pg_constraint
where conrelid = '์คํค๋ง๋ช
.ํ
์ด๋ธ๋ช
'::regclass
and contype = 'p'- ํ์ธํ PK ์ ๊ฑฐ
alter table ํ
์ด๋ธ๋ช
drop constraint PK๋ช
์ฐธ๊ณ ์ฌ์ดํธ