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

MySQL에서 새 열의 기본값을 현재 시간으로 자동 설정하는 방법

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를 활용하면 생성 일시나 마감 일시 같은 필드를 손쉽게 자동 관리할 수 있습니다.