반응형
How to create a blank, non-inputable column.
테이블을 생성하다 보면 NOT NULL 제약조건을 이용하여 컬럼에 NULL이 입력 불가하도록 생성할 수 있습니다. 하지만, 이는 공란까지 입력 불가한 상태는 아니기 때문에 반드시 입력이 필요한 경우에 NOT NULL 만으로 해결되지 않는 경우가 발생합니다.
만약 아래와 같은 NOT NULL인 COL1을 갖는 TEMPTABLE이 있다고 가정한다면
CREATE TABLE TEMPTABLE (
COL1 NVARCHAR(10) NOT NULL
)
여기에 NULL 을 입력하는 경우 아래와 같은 오류가 발생합니다.
INSERT INTO TEMPTABLE (COL1) VALUES (NULL)
하지만 공란을 입력하면 입력되는 것을 확인할 수 있습니다.
# 공란 입력
INSERT INTO TEMPTABLE (COL1) VALUES ('')
# 결과 확인
SELECT *
FROM TEMPTABLE
공란 제한 제약조건 추가
# 기존에 저장된 데이터 중 공란을 포함하는 테이블 처리
# 삭제 또는 공란을 다른 문자로 변환
UPDATE TEMPTABLE
SET COL1 = 'N/A'
WHERE COL1 = ''
# 제약조건 추가
ALTER TABLE TEMPTABLE WITH CHECK
ADD CONSTRAINT CK_TEMPTABLE_COL1 CHECK ((COL1<>N''))
# 테스트) 공란 입력
INSERT INTO TEMPTABLE (COL1) VALUES ('')
반응형
'개발 창고 > Database' 카테고리의 다른 글
[프로그래머스] 특정 옵션이 포함된 자동차 리스트 구하기 - MySQL (58) | 2024.02.15 |
---|---|
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 - MySQL (209) | 2024.02.02 |
[SQLite] How to get the last inserted ID (3) | 2023.12.12 |
[SQLite] How to Look Up the Date Interval (Date Diff) (3) | 2023.12.11 |
[SQLite] 마지막으로 입력 된 ID 가져오는 방법 (0) | 2023.07.28 |