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

TIMESTAMP DEFAULT CURRENT_TIMESTAMP로 열을 선언한 후 아무 값도 삽입하지 않으면 어떻게 될까?

MySQL에서 열을 TIMESTAMP DEFAULT CURRENT_TIMESTAMP로 선언하면, 해당 열에 아무 값도 삽입하지 않았을 때 현재 타임스탬프(현재 날짜와 시간)가 자동으로 저장됩니다. 실제 예제를 통해 확인해 보겠습니다.

1. 테이블 생성하기

먼저 DEFAULT CURRENT_TIMESTAMP 옵션이 적용된 테이블을 생성합니다.

mysql> create table DemoTable
(
    ArrivalDate timestamp default CURRENT_TIMESTAMP
);
Query OK, 0 rows affected (0.55 sec)

2. 레코드 삽입하기

insert 명령을 사용해 두 개의 레코드를 삽입합니다. 첫 번째 레코드는 now() 함수로 현재 시간을 직접 지정하고, 두 번째 레코드는 아무 값도 전달하지 않습니다.

mysql> insert into DemoTable values(now());
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values();
Query OK, 1 row affected (0.13 sec)

3. 결과 확인하기

select 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-09-01 14:08:47 |
| 2019-09-01 14:08:50 |
+---------------------+
2 rows in set (0.00 sec)

출력 결과를 보면, now() 함수를 사용한 첫 번째 행뿐만 아니라 아무 값도 삽입하지 않은 두 번째 행에도 현재 시간이 자동으로 저장된 것을 확인할 수 있습니다. 이는 DEFAULT CURRENT_TIMESTAMP 옵션 덕분입니다. 즉, INSERT 문에서 해당 열의 값을 명시적으로 제공하지 않으면 MySQL이 자동으로 현재 날짜와 시간을 채워 넣습니다.

이 기능은 게시글 작성 시각, 주문 접수 시간처럼 레코드가 생성된 시점을 자동으로 기록해야 하는 경우에 매우 유용하게 활용됩니다.