SQL/Oracle
[ORACLE] ORA-01758: 테이블은 필수 열을 추가하기 위해(NOT NULL) 비어 있어야 합니다.
728x90
안녕하세요~ '멍청한코더'입니다!!
ORA-01758 컬럼을 추가하면서 NOT NULL 조건을 추가해줄때 생기는 오류입니다
위와 같은 메시지를 보셨을 거에요
이건 기존 테이블에 컬럼을 추가하실때 모두 NULL 값이 들어가기 때문에
NOT NULL 조건이 붙지 못하는 거에요
이걸 해결하는 방법은 두 가지가 있어요
방법1
/*NUMBER 추가*/
ALTER TABLE 테이블명 ADD 컬럼명 NUMBER(20) DEFAULT 0 NOT NULL;
/*VARCHAR2 추가*/
ALTER TABLE 테이블명 ADD 컬럼명 VARCHAR2(20) DEFAULT ' ' NOT NULL;
DEFAULT 값을 지정하면서 넣어주는 것 입니다.
728x90
방법2
/*NUMBER 추가*/
ALTER TABLE 테이블명 ADD 컬럼명 NUMBER(20);
UPDATE 테이블명 SET 컬럼명 = 0; -- 지정하고자 하는 값을 넣어주시면 됩니다
ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL;
/*VARCHAR2 추가*/
ALTER TABLE 테이블명 ADD 컬럼명 VARCHAR2(20);
UPDATE 테이블명 SET 컬럼명 = ' '; -- 지정하고자 하는 값을 넣어주시면 됩니다
ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL;
NOT NULL 조건을 처음에는 넣어주지 말고
추후에 지정해주고자 하는 값들을 모두 UPDATE 해준 후에
NOT NULL 조건을 추가해주는 것 입니다
기본적으로는 방법1처럼 NOT NULL 조건을 넣을때는
DEFAULT 값을 지정해주는게 좋습니다
728x90
'SQL > Oracle' 카테고리의 다른 글
[ORACLE] 파티션 테이블 개념(TABLE PARTITIONING) (2) | 2021.10.17 |
---|---|
[ORACLE] SELECT 문 기본구조 (0) | 2021.09.05 |
[ORACLE] 테이블 생성 스크립트 추출방법 (4) | 2021.09.05 |
댓글