【发布时间】:2010-09-20 12:21:50
【问题描述】:
所以推测mysqldump可以导出为ansi compatible格式,这样就可以导入到其他厂商的数据库中了。
但是尝试导入到 apache derby 时,我遇到了所有这些语法错误。 以为我尝试了一些正则表达式并修复了一些问题,但似乎不止几个。
我对 mysqldump 有什么遗漏吗? 尝试了ddlutils,但在第 3 步之后无法使用这些似乎已过时的docs 取得进展。
我还有其他选择吗?
【问题讨论】:
所以推测mysqldump可以导出为ansi compatible格式,这样就可以导入到其他厂商的数据库中了。
但是尝试导入到 apache derby 时,我遇到了所有这些语法错误。 以为我尝试了一些正则表达式并修复了一些问题,但似乎不止几个。
我对 mysqldump 有什么遗漏吗? 尝试了ddlutils,但在第 3 步之后无法使用这些似乎已过时的docs 取得进展。
我还有其他选择吗?
【问题讨论】:
mysqldump 选项--compatible=ansi 不会生成完全 ANSI 兼容的SQL 脚本,它只是尝试生成更多 ANSI 兼容的结果: "产生与其他数据库系统或旧 MySQL 服务器更兼容的输出。"
很遗憾,每个数据库支持的 SQL 语法都有点不同。 SQL 是一个相对较弱的标准,比 Javascript 甚至 C 弱得多。一些数据库支持像 MySQL 那样的兼容性功能,甚至是 compatibility modes(免责声明:我是 H2 的主要作者),但有时即使这样也不够。
您有多种选择:您可以手动更改生成的 SQL 脚本,或者您可以使用其他工具来复制表结构/数据。一个这样的工具是SQuirreL DB Copy Plugin(我从未真正使用过它,但据我所知它运作良好)。
【讨论】:
如果您可以以 CSV 格式或类似格式导出数据,则可以使用 Derby 数据导入程序导入数据:http://db.apache.org/derby/docs/10.7/ref/rrefimportproc.html
【讨论】: