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

MySQL 임시 테이블의 TYPE=HEAP 오류 해결 방법

MySQL의 최신 버전에서는 TYPE=HEAP 구문이 더 이상 사용되지 않습니다(deprecated). 따라서 기존 쿼리를 실행하면 오류가 발생할 수 있습니다.

해결 방법: ENGINE=HEAP 사용

이 문제를 해결하려면 TYPE 대신 ENGINE 키워드를 사용하면 됩니다. 문법은 다음과 같습니다.

ENGINE=HEAP;

예제: HEAP 엔진으로 임시 테이블 생성하기

먼저 ENGINE=HEAP 옵션을 적용하여 임시 테이블을 생성해 보겠습니다.

mysql> create TEMPORARY table DemoTable
-> (
-> StudentId int,
-> StudentName varchar(30)
-> )Engine = HEAP;
Query OK, 0 rows affected (0.00 sec)

테이블이 정상적으로 생성되었습니다. 이제 SHOW CREATE TABLE 명령어로 테이블 정의를 확인해 보겠습니다.

mysql> show create table DemoTable;

출력 결과

위 명령어를 실행하면 다음과 같은 결과가 출력됩니다.

+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable | CREATE TEMPORARY TABLE `DemoTable` (`StudentId` int(11) DEFAULT NULL,`StudentName` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

참고 사항

출력 결과를 보면 실제로 저장된 엔진 이름이 MEMORY로 표시되는 것을 확인할 수 있습니다. 이는 HEAP 엔진이 MySQL에서 MEMORY 엔진의 이전 명칭이기 때문입니다. 두 이름은 동일한 인메모리 스토리지 엔진을 가리키며, 새로운 버전에서는 ENGINE=MEMORY 또는 ENGINE=HEAP 모두 사용할 수 있습니다. 다만 공식 문서에서는 ENGINE=MEMORY 사용을 권장하고 있습니다.