MySQL Error number: MY-010762; Symbol: ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE; SQLSTATE: HY000

文档解释

Error number: MY-010762; Symbol: ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE; SQLSTATE: HY000

Message: Error in setting handler reference for table %s.%s

Error Number:MY-010762; Symbol:ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE; SQLSTATE:HY000

错误说明

MY-010762错误号与ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE标志的MySQL错误消息指示MySQL无法设置引用HANDLER。由于此错误是由MySQL触发的,因此具体错误信息与MySQL版本有关,以下是MySQL 8.0.20中定义的消息:

ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE:无法为表“[table]”设置引用处理程序“[handler]”

此错误是MySQL在执行ALTER TABLE或CREATE TABLE子句时出现的,表明HANDLER子句引用的存储引擎必须有“WITH HANDLER”语法支持,以便设置引用。

常见案例

此错误在执行以下查询时出现:

ALTER TABLE实例:

ALTER TABLE t1 ENGINE=MyISAM WITH HANDLER t1 READ=s1 WRITE=s1;

CREATE TABLE语法:

CREATE TABLE t2 ENGINE=MyISAM WITH HANDLER t2 READ=s2 WRITE=s2;

上述两个查询将产生MY-010762和ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE错误。

解决方法

此类错误原因是因为用户无法更改表引擎。明确指定因此无需更改表引擎即可解决此问题。

在使用ALTER TABLE语法时,可以使用下列指令来消除此错误:

ALTER TABLE t1 ENGINE=MyISAM WITH HANDLER t1 READ=s1 WRITE=s1;

相反,在使用CREATE TABLE语法时,可以使用下列指令来消除此错误:

CREATE TABLE t2 ENGINE=MyISAM HANDLER t2 READ=s2 WRITE=s2;

使用此解决方案,用户不需要更改原始表引擎,即可成功创建表。

你可能感兴趣的