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

MySQL에서 TEXT 열을 TIMESTAMP 데이터 유형으로 변경하는 방법

MySQL 열의 데이터 유형을 TEXT에서 TIMESTAMP로 변경하기

MySQL에서 기존 열의 데이터 유형을 TEXT에서 TIMESTAMP로 변경하려면 ALTER 명령어를 사용해야 합니다.

기본 문법은 다음과 같습니다.

ALTER TABLE 테이블이름 MODIFY COLUMN 열이름 TIMESTAMP;

위 문법을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다.

1. 예제 테이블 생성

테이블 생성 쿼리는 다음과 같습니다.

mysql> create table textTotimestampdemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Source text
    -> );
Query OK, 0 rows affected (0.44 sec)

위 쿼리는 자동 증가되는 기본키 Id와 TEXT 유형의 Source 열을 가진 테이블을 생성합니다.

2. 테이블 구조 확인

DESC 명령어를 사용하면 테이블의 구조를 확인할 수 있습니다.

DESC 테이블이름;

실제 실행 예시는 다음과 같습니다.

mysql> desc textTotimestampdemo;

실행 결과는 아래와 같습니다.

+--------+---------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra          |
+--------+---------+------+-----+---------+----------------+
| Id     | int(11) | NO   | PRI | NULL    | auto_increment |
| Source | text    | YES  |     | NULL    |                |
+--------+---------+------+-----+---------+----------------+
2 rows in set (0.04 sec)

현재 Source 열의 유형이 text로 설정되어 있는 것을 확인할 수 있습니다.

3. ALTER 명령어로 데이터 유형 변경

이제 다음 쿼리를 사용하여 Source 열의 데이터 유형을 TIMESTAMP로 변경합니다.

mysql> alter table textTotimestampdemo modify column Source TIMESTAMP;
Query OK, 0 rows affected (1.25 sec)
Records: 0 Duplicates: 0 Warnings: 0

4. 변경 결과 확인

변경이 완료되었으면 다시 한번 테이블 구조를 확인해 보겠습니다.

mysql> desc textTotimestampdemo;

실행 결과는 다음과 같습니다.

+--------+-----------+------+-----+---------+----------------+
| Field  | Type      | Null | Key | Default | Extra          |
+--------+-----------+------+-----+---------+----------------+
| Id     | int(11)   | NO   | PRI | NULL    | auto_increment |
| Source | timestamp | YES  |     | NULL    |                |
+--------+-----------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

위 결과에서 확인할 수 있듯이, Source 열의 데이터 유형이 text에서 timestamp로 성공적으로 변경되었습니다.

주의 사항

기존 데이터가 들어 있는 열의 유형을 변경할 때는 주의가 필요합니다. TEXT 열에 저장된 값이 유효한 날짜·시간 형식이 아니라면 변환 과정에서 오류가 발생하거나 NULL 또는 '0000-00-00 00:00:00' 같은 기본값으로 처리될 수 있습니다. 따라서 운영 중인 데이터베이스에서 유형을 변경하기 전에는 반드시 데이터를 백업하고, 저장된 값들이 TIMESTAMP 형식에 맞는지 먼저 검토하는 것이 좋습니다.