在修改merge table的情况下,alter table语句现在还不支持union的操作吗? MySQL merge表引擎
分别试用了1.0.18和1.0.23,在SQLStatement的parseStatementList方法中没有找到UNION,然后printError了
alert table 表名 unoin (拆分表1,拆分表2); MySQL MRG_MyISAM引擎,拆分表为MyISAM引擎
原提问者GitHub用户pop-lee
在使用阿里云的Wall SQL Parser时,在执行alter table union语句时可能会出现报错的情况。这是因为Wall SQL Parser默认情况下不支持union语句的alter table操作。
为了解决这个问题,可以通过配置WallFilter来禁用union语句的alter table操作。具体来说,可以在WallFilter中添加以下配置:
Copy
wall.filter.unionNone=true
在这个配置中,unionNone为true表示禁用union语句的alter table操作。添加了这个配置后,Wall SQL Parser就会忽略union语句的alter table操作,从而避免报错。
根据您提供的信息,MySQL 的 MERGE 表引擎在 ALTER TABLE 语句中似乎不支持 UNION 操作。在您尝试使用 ALTER TABLE 语句时,解析器并未识别到 UNION 关键字,从而导致报错。
根据 MySQL 官方文档,MERGE 表引擎是用于将多个 MyISAM 表合并成一个逻辑表的一种方法。但是,这个引擎在 ALTER TABLE 语句中的功能有限,不支持像 UNION 这样的操作。
如果您需要对 MERGE 表执行 UNION 操作,可能需要考虑使用其他的方法来实现。一种可能的方法是使用临时表来存储 UNION 操作的结果,然后再将临时表与 MERGE 表合并。您可以尝试以下步骤:
创建一个临时表来存储 UNION 操作的结果,例如,CREATE TABLE temp_table AS SELECT FROM 拆分表1 UNION SELECT FROM 拆分表2。
将临时表与 MERGE 表进行合并,例如,ALTER TABLE MERGE_TABLE UNION=(拆分表1, temp_table)。
请注意,以上步骤仅提供了一种可能的解决方案,并不保证一定适用于您的具体情况。在实际操作之前,请确保备份重要的数据,并在测试环境中进行测试以验证解决方案的有效性。
如果您需要更详细的帮助或有其他问题,请提供更多的信息,我将尽力提供帮助。
MySQL merge table引擎只支持合并MyISAM引擎的表,不支持合并InnoDB引擎的表。
MySQL merge table引擎只支持合并多个MyISAM引擎的表,不支持合并多个InnoDB引擎的表。
MySQL merge table引擎只支持合并多个MyISAM引擎的表,不支持合并多个MyISAM引擎的表,但是每个拆分表都必须使用相同的索引。
已经支持,等下一个版本1.1.24吧,如果你是阿里内部用户,可以用快照版本1.1.24-SNAPSHOT
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。