MySQL에서 TYPE = InnoDB는 더 이상 작동하지 않습니다
MySQL에서 TYPE = InnoDB 구문을 사용하면 구문 오류(예외)가 발생합니다. 그 이유는 TYPE 키워드가 MySQL 5.1 버전부터 더 이상 권장되지 않는(deprecated) 구문으로 분류되었고, 이후 버전에서는 완전히 제거되었기 때문입니다. 따라서 최신 MySQL 환경에서는 반드시 ENGINE = InnoDB를 사용해야 합니다.
사용 중인 MySQL 버전 확인하기
이 글의 예제에서는 MySQL 8.0.12 버전을 기준으로 설명합니다. 먼저 다음 쿼리로 현재 사용 중인 MySQL 버전을 확인해 보겠습니다.
mysql> select version();
실행 결과는 다음과 같습니다.
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
TYPE = InnoDB 사용 시 발생하는 오류 예시
다음은 MySQL 8에서 TYPE = InnoDB를 사용했을 때 오류가 발생하는 실제 예제입니다.
mysql> create table Product_Information
-> (
-> ProductId int,
-> ProductName varchar(10),
-> ProductDeliveryDate datetime
-> )"TYPE = InnoDB";
ERROR 1064 (42000) - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"TYPE = InnoDB"' at line 6위와 같이 ERROR 1064 구문 오류가 발생하며 테이블 생성에 실패하게 됩니다. 이는 서버가 TYPE이라는 키워드를 인식하지 못하기 때문입니다.
ENGINE = InnoDB로 해결하기
TYPE 자리에 ENGINE을 사용하면 문제없이 테이블이 생성됩니다. 아래는 올바른 사용 예시입니다.
mysql> create table Product_Information
-> (
-> ProductId int,
-> ProductName varchar(10),
-> ProductDeliveryDate datetime
-> )ENGINE = InnoDB;
Query OK, 0 rows affected (0.73 sec)"Query OK" 메시지가 출력되며 테이블이 정상적으로 생성된 것을 확인할 수 있습니다.
정리
MySQL 5.5 이상, 특히 8.x 환경에서는 저장 엔진 지정 시 반드시 ENGINE = InnoDB 구문을 사용해야 합니다. 오래된 스크립트나 튜토리얼 자료에 TYPE = InnoDB가 포함되어 있다면 모두 ENGINE으로 수정해야 구문 오류를 피하고 안정적으로 데이터베이스를 운영할 수 있습니다.