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

MySQL 테이블에 'created at' 타임스탬프 열을 추가하는 방법

MySQL에서 이미 생성된 테이블에 레코드 생성 시간을 자동으로 기록하려면 ALTER 명령어를 사용해 'created at' 열을 추가할 수 있습니다. 이 글에서는 TIMESTAMP 타입의 열을 추가하고 기본값을 CURRENT_TIMESTAMP로 설정하는 방법을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 'created at' 열이 없는 테이블을 생성해 보겠습니다. 아래 쿼리는 Id, Email, PhoneNumber, Country, Platform 열을 가진 formDemo 테이블을 만드는 예제입니다.

mysql> create table formDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > Email varchar(128),
   - > PhoneNumber varchar(15),
   - > Country varchar(30),
   - > Platform varchar(40)
   - > );
Query OK, 0 rows affected (0.53 sec)

2. ALTER 명령어로 'created at' 열 추가하기

이제 ALTER TABLE 문을 사용하여 TIMESTAMP 타입의 'created at' 열을 추가합니다. 이때 DEFAULT 값을 CURRENT_TIMESTAMP로 지정하면, 새로운 레코드가 삽입될 때마다 현재 시간이 자동으로 저장됩니다.

참고: 열 이름에 공백이 포함되어 있는 경우(예: 'created at'), 반드시 백틱(`) 기호로 열 이름을 감싸야 합니다. 공백 없이 'created_at'처럼 작성하면 백틱 없이도 사용할 수 있습니다.

mysql> alter table formDemo
   - > add column `created at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.42 sec)
Records: 0 Duplicates: 0 Warnings: 0

3. 테이블 구조 확인하기

열이 정상적으로 추가되었는지 확인하려면 DESC 명령어로 테이블 구조를 조회합니다.

mysql> DESC formDemo;

아래 출력 결과에서 'created at' 열이 TIMESTAMP 타입으로 추가되었고, 기본값이 CURRENT_TIMESTAMP로 설정된 것을 확인할 수 있습니다.

+-------------+--------------+------+-----+-------------------+----------------+
| Field       | Type         | Null | Key | Default           | Extra          |
+-------------+--------------+------+-----+-------------------+----------------+
| Id          | int(11)      | NO   | PRI | NULL              | auto_increment |
| Email       | varchar(128) | YES  |     | NULL              |                |
| PhoneNumber | varchar(15)  | YES  |     | NULL              |                |
| Country     | varchar(30)  | YES  |     | NULL              |                |
| Platform    | varchar(40)  | YES  |     | NULL              |                |
| created at  | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+-------------+--------------+------+-----+-------------------+----------------+
6 rows in set (0.01 sec)

위 결과를 보면 'created at' 열이 성공적으로 추가된 것을 알 수 있습니다. 이제 이 테이블에 데이터를 삽입할 때마다 별도의 코드 작성 없이 레코드 생성 시각이 자동으로 기록됩니다.