MySQL에서 특정 테이블이 언제 마지막으로 수정되었는지 확인하고 싶다면 information_schema.tables 뷰의 UPDATE_TIME 컬럼을 활용하면 됩니다. WHERE 절과 함께 사용하면 원하는 데이터베이스와 테이블의 최종 변경 시간을 손쉽게 조회할 수 있습니다.
예제 테이블 생성하기
먼저 실습을 위한 테이블을 생성해 보겠습니다.
mysql> create table MyISAMTableDemo
-> (
-> id int
-> );
Query OK, 0 rows affected (0.56 sec)테이블에 데이터 삽입하기
생성한 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into MyISAMTableDemo values(1); Query OK, 1 row affected (0.72 sec) mysql> insert into MyISAMTableDemo values(2); Query OK, 1 row affected (0.16 sec)
마지막 업데이트 시간 조회 문법
테이블의 마지막 변경 시간을 확인하는 기본 쿼리 구문은 다음과 같습니다.
SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA = 'yourDatabaseName' AND TABLE_NAME = 'yourTableName';
실제 쿼리 실행 예시
이제 'business' 데이터베이스의 'MyISAMTableDemo' 테이블에 대해 실제로 쿼리를 실행해 보겠습니다.
mysql> SELECT UPDATE_TIME
-> FROM information_schema.tables
-> WHERE TABLE_SCHEMA = 'business'
-> AND TABLE_NAME = 'MyISAMTableDemo';실행 결과는 다음과 같습니다.
+---------------------+ | UPDATE_TIME | +---------------------+ | 2018-11-01 19:00:02 | +---------------------+ 1 row in set (0.08 sec)
결과에서 확인할 수 있듯이, 해당 테이블은 2018년 11월 1일 19시 00분 02초에 마지막으로 업데이트되었습니다.
참고 사항
UPDATE_TIME 값은 InnoDB가 아닌 MyISAM 스토리지 엔진에서 정확하게 기록됩니다. InnoDB 테이블의 경우 UPDATE_TIME이 NULL로 반환될 수 있으므로, 이 방법을 사용할 때는 테이블의 스토리지 엔진 종류를 먼저 확인하는 것이 좋습니다.