Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 NULL 값 삽입 시 자동으로 날짜와 시간을 입력하는 방법

MySQL에서 NULL 삽입 시 현재 날짜와 시간 자동 입력하기

MySQL에서는 다른 열에 NULL 값을 삽입할 때 특정 열에 현재 날짜와 시간을 자동으로 기록하도록 설정할 수 있습니다. 방법은 해당 열을 DEFAULT CURRENT_TIMESTAMP로 선언하는 것입니다.

단, 이때 주의할 점이 있습니다. NULL 값을 삽입하려는 열은 NOT NULL 제약 조건으로 선언하면 안 됩니다. NOT NULL로 선언된 열에는 NULL 값을 넣을 수 없기 때문입니다.

1. 테이블 생성

아래 예제처럼 테이블을 생성해 보겠습니다. 'Name' 열은 NOT NULL 없이 선언하고, 'RegDate' 열은 DEFAULT CURRENT_TIMESTAMP로 선언합니다.

mysql> CREATE TABLE Testing1(
    Name VARCHAR(20),
    RegDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Query OK, 0 rows affected (0.15 sec)

위 쿼리는 'Name' 열(NOT NULL 미선언)과 'RegDate' 열(DEFAULT CURRENT_TIMESTAMP 선언)을 가진 'Testing1' 테이블을 생성합니다.

2. NULL 값 삽입 및 결과 확인

이제 Name 열에 NULL 값을 삽입하면, RegDate 열에는 별도의 지정 없이도 현재 날짜와 시간이 자동으로 기록됩니다.

mysql> INSERT INTO Testing1(Name) VALUES(NULL);
Query OK, 1 row affected (0.08 sec)

mysql> INSERT INTO Testing1(Name) VALUES(NULL);
Query OK, 1 row affected (0.04 sec)

mysql> SELECT * FROM Testing1;
+------+---------------------+
| Name | RegDate             |
+------+---------------------+
| NULL | 2017-10-29 04:46:59 |
| NULL | 2017-10-29 04:47:02 |
+------+---------------------+
2 rows in set (0.05 sec)

결과 분석

위 실행 결과를 보면, Name 열에 NULL 값을 삽입할 때마다 RegDate 열에 해당 시점의 날짜와 시간이 자동으로 저장되는 것을 확인할 수 있습니다. 이러한 방식은 회원 가입 일시, 로그 기록 시간 등 레코드가 생성된 정확한 시점을 추적해야 하는 경우에 매우 유용하게 활용됩니다.