[Oracle] 오라클 컬럼 PK 추가, 변경, 제거 방법

오라클에서 테이블의 PK(Primary Key)를 추가, 변경 또는 삭제를 하기 위해서는 ALTER TABLE CONSTRAINT 명령어를 사용하면 된다. PK로 추가할 칼럼은 NULL 값이 존재하면 안 되며, PK로 추가할 칼럼 조합은 해당 테이블에서 유일한 값이어야 한다. 이미 생성된 PK에 칼럼을 추가하거나 뺄 때는 기존 PK를 삭제 후 다시 생성하는 방법을 사용한다.

 

목차

 

테이블  PK 추가 방법

ALTER TABLE scott.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno);

 

ALTER TABLE [스키마명].[테이블명] ADD CONSTRAINT [PK명] PRIMARY KEY ([칼럼],[칼럼], [칼럼] ...);

 

ALTER TABLE 명령어를 사용해서 PK를 생성할 수 있다. PK로 추가할 칼럼은 NULL 값이 없어야 하며, 칼럼 조합이 테이블에서 유일한 값이어야 한다.

 

테이블 PK 변경 방법

-- 변경할 PK 삭제
ALTER TABLE scott.emp DROP CONSTRAINT emp_pk;

-- PK 칼럼을 변경 후 재생성
ALTER TABLE scott.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno, ename);

 

PK 칼럼을 추가하거나 빼기 위해서는 기존 PK를 삭제하고 다시 생성해야 한다. ALTER TABLE MODIFY 명령어로는 칼럼을 추가하거나 뺄 수는 없다.

 

PK 칼럼을 변경할 때는 추가할 칼럼의 값이 NULL이 존재하면 안 되며, PK 칼럼 조합이 해당 테이블에서 유일한 값이어야 한다. PK 변경 시 아래의 오류가 발생하지 않도록 해야 한다.

 

ALTER TABLE scott.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno, ename)
오류 보고 -
ORA-01449: 열이 NULL값을 포함하고 있습니다 NOT NULL로 변경할 수 없습니다

 

PK에 추가할 칼럼에 NULL 값이 존재하면 위의 오류가 발생한다. NULL 값을 찾아서 특정 값으로 모두 UPDATE 한다.

 

ALTER TABLE scott.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno, ename)
오류 보고 -
ORA-02437: (SCOTT.EMP_PK)을 검증할 수 없습니다 - 잘못된 기본 키입니다

 

PK에 추가할 칼럼 조합의 값이 테이블에서 유일한 값이 아닐 경우 발생하는 오류이다. PK 칼럼 조합을 다시 하던지, 칼럼의 값을 테이블에서 유일한 값이 되도록 UPDATE 한다.

 

테이블 PK 제거 방법

ALTER TABLE scott.emp DROP CONSTRAINT emp_pk;

 

ALTER TABLE [스키마명].[테이블명] DROP CONSTRAINT [PK명];

 

테이블 생성 시 PK 설정 방법

CREATE TABLE emp 
( 
    empno       NUMBER(4)	NOT NULL,
    ename       VARCHAR2(10),
    job         VARCHAR2(9),
    mgr         NUMBER(4),
    hiredate    DATE,
    sal         NUMBER(7,2),
    comm        NUMBER(7,2),
    deptno      NUMBER(2),	
    CONSTRAINT emp_pk PRIMARY KEY (empno)
)

 

테이블 생성 시 PK를 설정하고 싶을 때는 CREATE TABLE 구문에 CONSTRAINT PRIMARY KEY 구문을 추가하면 된다. 위의 방법을 사용하면 테이블 생성 시 PK도 같이 생성된다.

 

 

[Oracle] 오라클 테이블 생성 방법 (Create Table)

오라클에서 테이블을 만들기 위해서는 CREATE TABLE을 사용하여 컬럼명, 데이터 타입을 정의하여 테이블을 생성하면 된다. 아래는 EMP(사원) 테이블을 만드는 예제이다. ① 테이블 명, ② 컬럼 명 -

gent.tistory.com

 

[Oracle] PK 조회 방법 (Primary Key)

오라클(Oracle) PK 조회 쿼리 제약조건(Constraints) 뷰를 사용하여 PK 컬럼을 쉽게 조회할 수 있다. 테이블명을 대문자로 TABLE_NAME 조건에 넣으면 PK명과 PK컬럼이 조된다. 해당 테이블에 액세스 권한이

gent.tistory.com

 

댓글

Designed by JB FACTORY