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

MySQL에서 기본 날짜·시간 값을 시스템 현재 시간(CURRENT_TIMESTAMP)으로 설정하는 방법

개요

MySQL에서는 CURRENT_TIMESTAMP를 사용하여 시스템의 현재 날짜와 시간을 컬럼의 기본값으로 설정할 수 있습니다. 이 기능은 레코드가 생성된 시각을 자동으로 기록해야 할 때 특히 유용합니다.

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientFirstName varchar(20),
    ClientLastName varchar(20),
    ClientAge int
);
Query OK, 0 rows affected (0.66 sec)

CURRENT_TIMESTAMP로 기본값 설정하기

다음은 ALTER TABLE 문으로 새 컬럼을 추가하면서, 해당 컬럼의 기본값을 시스템 현재 날짜·시간으로 지정하는 쿼리입니다.

mysql> alter table DemoTable add column ClientProjectDeadline timestamp default current_timestamp;
Query OK, 0 rows affected (0.46 sec)
Records: 0 Duplicates: 0 Warnings: 0

결과 확인하기

DESC 명령으로 테이블 구조를 다시 한번 확인해 보겠습니다.

mysql> desc DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------------------+-------------+------+-----+-------------------+----------------+
| Field                 | Type        | Null | Key | Default           | Extra          |
+-----------------------+-------------+------+-----+-------------------+----------------+
| Id                    | int(11)     | NO   | PRI | NULL              | auto_increment |
| ClientFirstName       | varchar(20) | YES  |     | NULL              |                |
| ClientLastName        | varchar(20) | YES  |     | NULL              |                |
| ClientAge             | int(11)     | YES  |     | NULL              |                |
| ClientProjectDeadline | timestamp   | YES  |     | CURRENT_TIMESTAMP |                |
+-----------------------+-------------+------+-----+-------------------+----------------+
5 rows in set (0.22 sec)

추가 참고 사항

출력 결과에서 ClientProjectDeadline 컬럼의 Default 값이 CURRENT_TIMESTAMP로 설정된 것을 확인할 수 있습니다. 이제 INSERT 문 실행 시 이 컬럼에 값을 명시적으로 지정하지 않으면, MySQL이 자동으로 레코드 삽입 시점의 시스템 날짜와 시간을 저장합니다.

참고로 MySQL 5.6.5 이상 버전에서는 DATETIME 타입 컬럼에도 DEFAULT CURRENT_TIMESTAMP를 적용할 수 있습니다. 또한 ON UPDATE CURRENT_TIMESTAMP 옵션을 함께 사용하면 레코드가 수정될 때마다 해당 컬럼의 값이 자동으로 갱신되므로, 최종 변경 일시를 관리하는 용도로도 활용할 수 있습니다.