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

MySQL 테이블에 레코드 생성 시간 자동 저장하는 방법 – DEFAULT CURRENT_TIMESTAMP 활용법

MySQL에서 레코드가 생성된(삽입된) 시간을 자동으로 저장하려면 DEFAULT CURRENT_TIMESTAMP 옵션을 사용하면 됩니다. 다만 이 방식은 레코드가 삽입되는 시점에만 적용되며, 이후 레코드를 수정해도 해당 값은 변경되지 않는다는 점을 유의해야 합니다.

1. 테이블 생성하기

먼저 TIMESTAMP 타입의 컬럼에 DEFAULT CURRENT_TIMESTAMP를 지정하여 테이블을 생성합니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Arrivaltime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
Query OK, 0 rows affected (0.31 sec)

2. 레코드 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 삽입해 보겠습니다. Arrivaltime 값을 직접 지정할 수도 있고, 값을 생략하면 현재 시간이 자동으로 저장됩니다.

mysql> insert into DemoTable(Arrivaltime) values('2018-01-31 10:34:56');
Query OK, 1 row affected (0.06 sec)

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

mysql> insert into DemoTable(Arrivaltime) values('2019-01-31 11:10:12');
Query OK, 1 row affected (0.04 sec)

3. 결과 확인하기

SELECT 문을 실행하여 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+---------------------+
| Id | Arrivaltime         |
+----+---------------------+
| 1  | 2018-01-31 10:34:56 |
| 2  | 2019-05-02 12:50:24 |
| 3  | 2019-01-31 11:10:12 |
+----+---------------------+
3 rows in set (0.00 sec)

출력 결과를 살펴보면, Id 2번 레코드처럼 Arrivaltime 값을 명시하지 않고 삽입한 경우 CURRENT_TIMESTAMP 기본값에 따라 레코드가 삽입된 당시의 날짜와 시간이 자동으로 저장된 것을 확인할 수 있습니다. 반면 Id 1번과 3번 레코드처럼 직접 값을 지정한 경우에는 지정한 시간이 그대로 저장됩니다. 이처럼 DEFAULT CURRENT_TIMESTAMP를 활용하면 별도의 애플리케이션 로직 없이도 데이터 생성 시각을 손쉽게 기록할 수 있습니다.