使用mariadb-dump迁移MariaDB到MySQL时排除虚拟生成列数据的方法
解决MariaDB虚拟列备份导入MySQL报错的方法
方法1:明确指定要导出的非虚拟列
使用mariadb-dump的--columns参数,直接列出所有非虚拟列(比如你的表中uuid、id),生成的备份文件里INSERT语句只会包含这些列的数据,不会带上虚拟列id2:
mariadb-dump -u [用户名] -p [数据库名] [表名] --columns=uuid,id > backup.sql
执行时替换括号里的实际信息,输入密码后即可生成符合要求的备份文件。
方法2:排除虚拟列
如果非虚拟列数量多,不想逐个列出,可以用--ignore-columns参数直接排除虚拟列id2:
mariadb-dump -u [用户名] -p [数据库名] [表名] --ignore-columns=id2 > backup.sql
这种方式会自动导出除id2外的所有列,适合非虚拟列较多的场景。
注意事项
- 导出表结构时,默认会包含虚拟列的定义(
GENERATED ALWAYS AS ... VIRTUAL),MySQL完全兼容该语法,无需修改表结构部分。 - 如果需要同时导出整个数据库的多个表,可针对每个包含虚拟列的表单独指定列参数,或者编写脚本批量处理。
内容的提问来源于stack exchange,提问作者Senthil
相关产品推荐
相关产品推荐

