MySQL Error number: 4112; Symbol: ER_CREATE_SELECT_WITH_GIPK_DISALLOWED_IN_SBR; SQLSTATE: HY000 报错
文档解释
Error number: 4112; Symbol: ER_CREATE_SELECT_WITH_GIPK_DISALLOWED_IN_SBR; SQLSTATE: HY000
Message: Generating an invisible primary key for a table created using CREATE TABLE … SELECT … is disallowed when binlog_format=STATEMENT. It cannot be guaranteed that the SELECT retrieves rows in the same order on source and replica. Therefore, it cannot be guaranteed that the value generated for the generated implicit primary key column will be the same on source and replica for all rows. Use binlog_format=ROW or MIXED to execute this statement.
:
错误说明:
MySQL错误号4112(ER_CREATE_SELECT_WITH_GIPK_DISALLOWED_IN_SBR)一般用于表示用户尝试在存储引擎SBR结构中创建一个具有具有全局主键的选择。 由于SBR存储引擎不支持全局主键,因此需要将该字段改为普通索引字段。
常见案例
ER_CREATE_SELECT_WITH_GIPK_DISALLOWED_IN_SBR错误一般出现在使用SBR存储引擎的MySQL表中,当用户创建一个包含全局主键的选择语句时,这个错误会直接报出。
解决方法:
以上MySQL错误4112的最简单的解决方法就是删除表中的全局主键字段,然后根据MySQL官方文档里提到的步骤,创建一个普通索引代替全局主键,并将其用户普通索引字段。如果只删除全局主键字段会导致数据丢失,那么最好的解决方法是在此过程中创建一个新表,将原表中的字段全部拷贝到新表中,之后将字段改成普通索引字段,最后再删除原来的表即可。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341