MySQL에서 SHOW TABLES 문을 사용하면 현재 데이터베이스에 존재하는 테이블 목록을 손쉽게 확인할 수 있습니다. 그러나 임시 테이블(TEMPORARY TABLE)은 이 목록에 포함되지 않습니다. 즉, SHOW TABLES 문을 실행해도 임시 테이블은 조회되지 않습니다.
예제
다음 예제를 통해 이를 직접 확인해 보겠습니다. 먼저 'SalesSummary'라는 이름의 임시 테이블이 있다고 가정하고, SHOW TABLES 문으로 해당 테이블을 검색해 보겠습니다.
mysql> SHOW TABLES LIKE '%Sales%'; Empty set (0.00 sec) mysql> SHOW TABLES LIKE '%SalesSummary%'; Empty set (0.00 sec)
위 쿼리의 결과가 모두 빈 결과 집합(Empty set)으로 반환된 것을 볼 수 있습니다. 이는 임시 테이블 'SalesSummary'가 실제로 존재하더라도 데이터베이스의 일반 테이블 목록에는 등록되지 않기 때문입니다.
임시 테이블의 특징
MySQL의 임시 테이블은 세션(Session) 단위로 생성되며, 해당 세션이 종료되면 자동으로 삭제됩니다. 또한 같은 이름의 일반 테이블과 공존할 수 있어야 하기 때문에, 시스템 카탈로그의 테이블 목록 조회에서 의도적으로 제외됩니다.
따라서 임시 테이블의 존재 여부를 확인하려면 SHOW TABLES 대신 해당 테이블에 직접 SELECT 쿼리를 실행하거나, INFORMATION_SCHEMA의 TEMPORARY_TABLES 관련 정보를 활용하는 방법을 사용해야 합니다.