MySQL에서 기본값을 현재 시간으로 설정하는 방법
MySQL에서 새 열(컬럼)을 추가하면서 기본값을 현재 날짜와 시간으로 지정하고 싶다면 DEFAULT CURRENT_TIMESTAMP 절을 사용하면 됩니다. 이 절을 적용하면 별도로 값을 입력하지 않아도 레코드가 삽입되는 순간의 타임스탬프가 자동으로 저장됩니다.
기본 문법
CREATE TABLE yourTableName
(
yourColumnName1 dataType1,
yourColumnName timestamp DEFAULT CURRENT_TIMESTAMP
);timestamp 타입의 열에 DEFAULT CURRENT_TIMESTAMP를 지정하면, INSERT 문에서 해당 열의 값을 명시하지 않았을 때 자동으로 현재 시간이 채워집니다.
예제: 테이블 생성하기
먼저 데모용 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> DueDate timestamp default current_timestamp
-> );
Query OK, 0 rows affected (0.86 sec)위 예제에서 DueDate 열에는 default current_timestamp 옵션이 적용되어 있습니다. 따라서 이 열에 값을 지정하지 않으면 레코드 삽입 시점의 현재 시간이 자동으로 기록됩니다.
레코드 삽입하기
이제 INSERT 문으로 레코드를 삽입합니다. 여기서 주목할 점은 DueDate 값을 따로 지정하지 않고 빈 값으로 삽입한다는 것입니다.
mysql> insert into DemoTable values(); Query OK, 1 row affected (0.16 sec)
결과 확인하기
SELECT 문을 사용해 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
출력 결과
+----+---------------------+ | Id | DueDate | +----+---------------------+ | 1 | 2019-06-08 21:35:58 | +----+---------------------+ 1 row in set (0.00 sec)
출력 결과에서 확인할 수 있듯이, INSERT 문에서 DueDate에 아무 값도 지정하지 않았음에도 불구하고 레코드가 삽입된 시점인 2019-06-08 21:35:58이 자동으로 저장된 것을 볼 수 있습니다. 이처럼 DEFAULT CURRENT_TIMESTAMP를 활용하면 생성 일시나 마감 일시 같은 필드를 손쉽게 자동 관리할 수 있습니다.