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

MySQL 데이터베이스의 마지막 변경 날짜/시간을 확인하는 방법

MySQL에서는 INFORMATION_SCHEMA.TABLES를 활용하면 특정 테이블이 마지막으로 변경된 날짜와 시간을 손쉽게 조회할 수 있습니다. 이 정보는 데이터 동기화 상태 점검이나 변경 이력 추적 등 다양한 상황에서 유용하게 사용됩니다.

기본 문법

마지막 변경 시간을 조회하는 기본 쿼리 구문은 다음과 같습니다.

SELECT update_time
FROM information_schema.tables
WHERE table_schema = 'yourDatabaseName'
AND table_name = 'yourTableName';

실습 예제

문법을 실제로 이해하기 위해 먼저 테스트용 테이블을 생성해 보겠습니다.

mysql> create table TblUpdate
    -> (
    -> Id int not null auto_increment primary key,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.49 sec)

다음으로 INSERT 명령을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into TblUpdate(Name) values('John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into TblUpdate(Name) values('Carol');
Query OK, 1 row affected (0.22 sec)

SELECT 문으로 테이블의 모든 레코드를 확인할 수 있습니다.

mysql> select *from TblUpdate;

출력 결과

+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
+----+-------+
2 rows in set (0.00 sec)

이제 UPDATE 쿼리를 실행해 테이블을 수정해 보겠습니다.

mysql> update TblUpdate set Name = 'James' where Id=2;
Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0

위 과정을 통해 테이블이 갱신되었습니다. 이제 앞서 소개한 쿼리를 사용해 마지막 변경 날짜/시간을 조회합니다.

mysql> SELECT update_time
    -> FROM information_schema.tables
    -> WHERE table_schema = 'sample'
    -> AND table_name = 'TblUpdate';

실행 결과를 보면 해당 데이터베이스가 2019-02-09 22:49:44에 업데이트된 것을 확인할 수 있습니다.

+---------------------+
| UPDATE_TIME         |
+---------------------+
| 2019-02-09 22:49:44 |
+---------------------+
1 row in set (0.89 sec)

참고 사항

UPDATE_TIME 컬럼은 InnoDB 테이블의 경우 MySQL 버전 및 설정에 따라 정확하지 않거나 NULL로 반환될 수 있습니다. MyISAM 테이블에서는 가장 신뢰도 높게 동작하므로, 정확한 변경 시각이 필요하다면 스토리지 엔진 특성을 함께 고려하는 것이 좋습니다.