MySQL Error number: 3178; Symbol: ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN; SQLSTATE: HY000 报错
文档解释
Error number: 3178; Symbol: ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN; SQLSTATE: HY000
Message: ADD COLUMN col…VIRTUAL, ADD INDEX(col)
错误说明:
ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN错误指示在虚拟列上不支持使用ALTER TABLE语句进行在线修改。MySQL报出此错误,表明在更改表结构时尝试使用在线表修改,但此操作对虚拟列是不可行的。
常见案例
常见的场景是在更新表结构时忘记考虑改变虚拟列的情况,因此会忽略使用ALTER TABLE语句的在线修改功能;而忘记删除虚拟列,则会出现该错误,例如尝试用ALTER TABLE DROP COLUMN语句删除虚拟列。
解决方法:
由于MySQL不支持在线更新虚拟列,因此当在修改表结构时必须为虚拟列提供离线修改的解决方案,即在ALTER TABLE DROP COLUMN语句的前面先创建一个新表,取消加入虚拟列;然后将原始表的记录从新表中插入,最后将新表重新命名为原来表的名字。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341