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

MySQL 1064 오류 해결 방법 – 'TYPE=MyISAM' 구문 오류 수정하기

MySQL 오류 1064, 왜 발생할까?

테이블을 생성할 때 저장 엔진(Storage Engine)을 지정하는 자리에 TYPE 키워드를 사용하면 다음과 같은 1064 구문 오류가 발생합니다.

mysql> create table DemoTable1836
    (
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(20)
    )Type=MyISAM AUTO_INCREMENT=1;
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=MyISAM AUTO_INCREMENT=1' at line 5

이는 예전 버전의 MySQL에서 사용되던 TYPE 문법이 최신 버전에서 제거되었기 때문입니다. MySQL 8.0부터는 반드시 ENGINE 키워드를 사용해야 합니다.

해결 방법: TYPE 대신 ENGINE 사용하기

아래와 같이 Type=MyISAM 부분을 ENGINE=MyISAM으로 변경하면 오류 없이 정상적으로 테이블이 생성됩니다.

mysql> create table DemoTable1836
    (
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(20)
    )ENGINE=MyISAM AUTO_INCREMENT=1;
Query OK, 0 rows affected (0.00 sec)

1. 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 레코드를 추가해 보겠습니다.

mysql> insert into DemoTable1836(ClientName) values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1836(ClientName) values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1836(ClientName) values('Mike');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1836(ClientName) values('Sam');
Query OK, 1 row affected (0.00 sec)

2. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1836;

실행 결과는 다음과 같습니다.

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|        1 | Chris      |
|        2 | David      |
|        3 | Mike       |
|        4 | Sam        |
+----------+------------+
4 rows in set (0.00 sec)

정리

MySQL 1064 오류 중 'Type=MyISAM' 관련 구문 오류는 구식 문법을 사용했기 때문에 발생합니다. TYPE 대신 ENGINE 키워드로 변경하는 것만으로 간단히 해결할 수 있습니다. 참고로 MyISAM은 트랜잭션을 지원하지 않으므로, 최신 프로젝트에서는 기본 엔진인 InnoDB 사용을 권장합니다.