[Postgresql] 컬럼 추가 / 변경 / 삭제 쿼리 정리 (ALTER TABLE)

서론

개발하다가 DB에서 데이터를 Select 하는 경우가 가장 빈번하다. 그 다음은 데이터를 가공하거나 테스트 데이터를 생성하는 등 DML 데이터 조작 SQL을 작성하는 경우다. 

 

하지만 점점 직접 테이블을 생성하고 수정하며 제약사항을 걸고 기본값을 설정하거나 외래키, 외래키에 대한 옵션 등 자주 사용하지는 않지만 그로 인해 잊어버리기 쉬운 수정(ALTER) DDL을 정리하고자 한다.

 

컬럼 추가
ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 제약조건
자동증가(auto_increment) PK 컬럼 생성 예제

SQL :  ALTER
TABLE tblTest ADD COLUMN test_seq bigint PRIMARY KEY DEFAULT nextval('test_seq');
     -> ALTER TABLE tblTest ADD COLUMN test_seq serial PRIMARY KEY;

이렇게 하면 serial 이 1에서부터 하나씩 증가.
FK(외래키) 컬럼 생성 예제

SQL :  ALTER TABLE tblTest ADD COLUMN test_seq bigint REFERENCES tblTest2(test_seq2);
일반 컬럼 생성 예제

SQL :  ALTER TABLE tblTest ADD COLUMN name varchar(50) DEFAULT '';

 

컬럼 변경
컬럼명 변경

SQL : ALTER TABLE 테이블명 RENAME COLUMN 현재컬럼명 TO 새로운컬럼명;
컬럼 데이터 타입 변경 (주로 varchar의 사이즈를 늘려야 되는 경우 많이 쓰게되더라.)

SQL : ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 TYPE 데이터타입
Default 값 추가 / 제거

추가 SQL : ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 SET DEFAULT 데이터
제거 SQL : ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 DROP DEFAULT
NOT NULL 추가 / 제거

추가 SQL :
ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 SET NOT NULL;
제거 SQL : ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 DROP NOT NULL;

 

컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

 

참고자료

https://www.postgresql.org/docs/9.5/reference.html

댓글

Designed by JB FACTORY