所以想必mysqldump可以导出成ansi兼容的格式,这样就可以导入到其他厂商的数据库了。
但是尝试导入到 apache derby 我面临所有这些语法错误。以为我尝试了一些正则表达式并修复了一些东西,但似乎不止一对。
我对mysqldump有什么遗漏吗?尝试了ddlutils,但在步骤 3 之后无法使用这些似乎过时的文档取得进展。
我还有其他选择吗?
该mysqldump
选项--compatible=ansi
不会生成完全兼容 ANSI 的 SQL 脚本,它只是尝试生成更兼容 ANSI 的结果:“生成与其他数据库系统或旧 MySQL 服务器更兼容的输出。”
不幸的是,每个数据库支持的 SQL 语法都有点不同。SQL 是一个相对较弱的标准,比 Javascript 甚至 C 弱得多。有些数据库支持像 MySQL 那样的兼容性特性,甚至是兼容模式(免责声明:我是 H2 的主要作者),但有时即使这样还不够。
您有多种选择:您可以手动更改生成的 SQL 脚本,或者您可以使用其他工具来复制表结构/数据。一个这样的工具是SQuirreL DB Copy Plugin(我从未真正使用过它,但据我所知它运行良好)。
如果您可以以 CSV 格式或类似格式导出数据,则可以使用 Derby 数据导入程序来导入数据:http ://db.apache.org/derby/docs/10.7/ref/rrefimportproc.html