테이블의 제약조건 수정은 ALTER TABLE
명령어를 사용합니다. 기존 제약조건을 직접 수정할 수는 없으며, 제거 후 새로 추가하는 방식으로 수정이 이루어집니다.
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건_이름 제약조건_유형 (열_이름);
-- FOREIGN KEY나 CHECK 제약조건 삭제
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건_이름;
-- PRIMARY KEY 삭제
ALTER TABLE 테이블명
DROP PRIMARY KEY;
-- UNIQUE 제약조건 삭제
ALTER TABLE 테이블명
DROP INDEX 제약조건_이름;
제약조건_이름
: 제약조건의 식별자 (선택적)제약조건_유형
: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK 등열_이름
: 제약조건이 적용될 열-- 연습용 테이블 생성
CREATE TABLE dept_n (
deptno INT(2),
dname VARCHAR(14),
loc VARCHAR(13)
);
CREATE TABLE emp_n (
empno INT(4)
ename VARCHAR(10),
job VARCHAR(9),
deptno INT(2)
);
-- NOT NULL 추가
ALTER TABLE dept_n
MODIFY loc VARCHAR(13) NOT NULL;
-- NOT NULL 제거
ALTER TABLE dept_n
MODIFY loc VARCHAR(13) NULL;
-- PRIMARY KEY 추가
ALTER TABLE dept_n
ADD CONSTRAINT pk_deptno PRIMARY KEY (deptno);
-- PRIMARY KEY 삭제
ALTER TABLE dept_n
DROP PRIMARY KEY;
-- FOREIGN KEY 추가
ALTER TABLE emp_n
ADD CONSTRAINT fk_deptno
FOREIGN KEY (deptno) REFERENCES dept_n (deptno);
-- FOREIGN KEY 삭제
ALTER TABLE emp_n
DROP CONSTRAINT fk_deptno;
ALTER TABLE을 통한 제약조건 수정은 데이터베이스의 구조를 유연하게 관리할 수 있게 해줍니다. 하지만 운영 중인 데이터베이스의 제약조건을 수정할 때는 신중한 검토가 필요합니다.