因此,假设mysqldump可以导出为ansi compatible格式,以便您可以导入到其他供应商的数据库。
但是,尝试导入到apache derby时,我会遇到所有这些语法错误。
我想我试着用regex来解决问题,但似乎不止一对。
我的qldump有什么遗漏吗?
尝试了ddlutils但在第3步后仍无法取得进展,这些docs似乎已过时。
我还有别的选择吗?
最佳答案
mysqldump
选项--compatible=ansi
不会生成与ANSI完全兼容的SQL脚本,它只是尝试生成与ANSI更兼容的结果:“生成与其他数据库系统或较旧的MySQL服务器更兼容的输出。”
不幸的是,每个数据库支持的SQL语法有点不同。SQL是一个相对较弱的标准,比Javascript甚至C都弱得多。一些数据库支持MySQL这样的兼容性功能,甚至compatibility modes(免责声明:我是H2的主要作者),但即使这样有时也不够。
您有多个选项:可以手动更改生成的SQL脚本,也可以使用其他工具复制表结构/数据。其中一个工具是SQuirreL DB Copy Plugin(我从未真正使用过它,但据我所知,它运行良好)。
关于mysql - MySQL转储.sql脚本并导入到Apache derby,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3751425/