MySQL에서 날짜(DATE) 열에 NULL 값을 저장할 수 있도록 하려면 ALTER TABLE 문과 MODIFY 절을 함께 사용하여 해당 열의 제약 조건을 NULL 허용으로 변경하면 됩니다. 기본적인 문법은 다음과 같습니다.
alter table yourTableName modify column yourColumnName date NULL;
실제 동작 과정을 예제를 통해 단계별로 살펴보겠습니다.
1. NOT NULL 제약 조건이 있는 테이블 생성
먼저 ShippingDate 열을 NOT NULL로 설정한 테이블을 생성합니다.
mysql> create table DemoTable
(
ShippingDate date NOT NULL
);
Query OK, 0 rows affected (0.78 sec)2. NULL 값 삽입 시 오류 확인
이 상태에서 NULL 값을 삽입하려고 하면, 열이 NOT NULL로 설정되어 있기 때문에 다음과 같은 오류가 발생합니다.
mysql> insert into DemoTable values(null); ERROR 1048 (23000) − Column 'ShippingDate' cannot be null
3. ALTER TABLE로 NULL 허용하도록 변경
이제 ALTER TABLE 문을 사용하여 해당 열이 NULL 값을 허용하도록 테이블 구조를 변경합니다.
mysql> alter table DemoTable modify column ShippingDate date NULL; Query OK, 0 rows affected (1.81 sec) Records : 0 Duplicates : 0 Warnings : 0
4. NULL 값 삽입 성공 확인
테이블 구조가 변경되었으므로, 이번에는 INSERT 명령으로 NULL 값을 넣어도 오류 없이 정상적으로 처리됩니다.
mysql> insert into DemoTable values(null); Query OK, 1 row affected (1.21 sec)
5. 결과 조회
SELECT 문을 사용하여 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다. ShippingDate 열에 NULL 값이 정상적으로 저장된 것을 확인할 수 있습니다.
+--------------+ | ShippingDate | +--------------+ | NULL | +--------------+ 1 row in set (0.00 sec)
이처럼 ALTER TABLE ... MODIFY COLUMN 구문을 활용하면 기존 테이블의 열 제약 조건을 간단하게 변경하여 NULL 값 입력을 허용할 수 있습니다.