programing

에 이 쿼리에 ERROR 에 이 쿼리에 ERROR 에 이 쿼리에 ERROR <TAB>용 테이블 스토리지 엔진LE > 에는 이 옵션이 없습니다.이것은 의 MySQL에 의해 반환된 에러입니다.이것은 의 MySQL에 의해 반환된 에러..

goodjava 2022. 10. 21. 21:21

에 이 쿼리에 ERROR

<TAB>용 테이블 스토리지 엔진LE > 에는 이 옵션이 없습니다.

이것은 의 MySQL에 의해 반환된 에러입니다.order by쿼리. 열 유형은 다음과 같습니다.varchar(2000).

쿼리:

select * from `dbo.table_1` order by textT;

반환된 오류:

ERROR 1031 (HY000):dbo.table_1'의 테이블 스토리지 엔진에는 이 옵션이 없습니다.

왜 이런 일이 일어날까요?어떻게 고칠 수 있을까요?

이 문제는 MyISAM으로 작성되었지만 나중에 InnoDB로 전환된 테이블 정의를 Import할 때 발생합니다.ROW_FORMAT옵션이 유효하지 않은 것 같습니다.

내보낸 데이터베이스를 가져오려고 할 때 이 문제가 발생할 경우 검색 및 교체만 하면 됩니다.ROW_FORMAT=FIXED아무것도 없이.

저는 다음을 사용하여 매우 빠르게 작업을 수행했습니다.

sed -ie 's/ROW_FORMAT=FIXED//g' backup.sql

문제 해결!문제가 된 것은 ROW_FORMAT이라고 지적해 주신 jbrahy 덕분입니다.

편집: @seven의 제안에 따라 더 많은 플랫폼에서 작동하도록 업데이트됨

EDIT2: 또한 @Steen-Sütt에 따르면 이것이 더 안전한 수정일 수 있습니다.

sed -ie 's/ROW_FORMAT=FIXED/ROW_FORMAT=COMPACT/g' backup.sql

ROW_FORMAT=DYNAMIC이 포함된 InnoDB의 테이블 정의를 가져올 때 동일한 오류가 발생합니다.MyISAM 엔진으로 테이블을 만들었는데 나중에 InnoDB로 바꿨습니다.create table 스테이트먼트에서 ROW_FORMAT=DYNAMIC을 삭제하고 테이블을 다시 작성하면 정상적으로 동작합니다.당신의 문제에 대한 저의 해결책은 이것입니다.

show create table `dbo.table_1`;

그런 다음 해당 명령어의 출력을 가져와 ROW_FORMAT=DYNAMIC을 제거한 다음 테이블 이름을 로 변경합니다.dbo.table_1_old

rename table `dbo.table_1` to `dbo.table_1_old`;

그런 다음 첫 번째 단계부터 create table 문을 실행합니다.

-- don't use this create as there are missing columns use yours
create table `dbo.table_1` (textT VARCHAR(255)); 

그런 다음 테이블을 이전 데이터로 다시 채웁니다.

insert into `dbo.table_1` select * from `dbo.table_1_old`;

그러면 원래 SQL을 실행할 수 있습니다.

select * from `dbo.table_1` order by textT;

다음의 조작도 실행할 수 있습니다.

ALTER TABLE `dbo.table_1` ROW_FORMAT = DEFAULT ;

이 문제는 MySQL 5.6 이전 버전에서 만든 MySQL 5.7로 테이블 정의를 가져올 때 발생하는 것으로 보입니다.같은 오류로 인해 옵션 KEY_BUFFER_SIZE=8192에 의해 b가 생성될 수 있으며 INNODB ENGINE에 대해 바이트 단위로 정의된 유사한 크기가 생성됩니다.sql-dump에서 base를 Import할 때 이 오류가 발생했습니다.결정: sed - ie s/KEY_BLOCK_SIZE=16384//g' my-file-sql_sql.sql

이 문제가 발생하여 백업 파일이 암호화되었습니다..zsql그래서 my.cnf를 수정했습니다.innodb_strict_mode = off잘 작동했다.

언급URL : https://stackoverflow.com/questions/29486583/table-storage-engine-for-table-doesnt-have-this-option-on-order-by-query-err