개요
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 옵션을 함께 사용하면 레코드가 수정될 때마다 해당 컬럼의 값이 자동으로 갱신되므로, 최종 변경 일시를 관리하는 용도로도 활용할 수 있습니다.