如何将mySql数据库导出到嵌入式数据库(例如H2)?

时间:2011-05-15 16:47:04

标签: mysql database export h2

我们一直致力于一个项目。一开始我们遇到了一些数据库问题,所以我们使用了一个mySQL-server数据库来解决这个问题。

现在我们真的应该回到嵌入式数据库,访问是不可能的(必须是跨平台的)

我们的导师建议使用H2嵌入式数据库,但是如果我们尝试在H2的控制台中运行它,我们的sql-dump会出现语法错误。

有什么想法? 提前谢谢!

2 个答案:

答案 0 :(得分:3)

要在unix系统上生成适合H2 SQL脚本,您可以尝试以下操作:

mysqldump -u root -c --p --skip-opt db_name | sed -e "/^--/d" -e 's/`//g' -e 's/bigint(20)/numeric(20)/g' -e 's/double\(([^(]*)\)/double/' -e 's/int(11)/integer/g' -e '/^\/\*.*\*\//d' -e '/^LOCK TABLES/d' -e '/^\/\*/,/\*\//c\;' -e '/^CREATE TABLE/,/);/{/^  KEY/d; /^  PRIMARY KEY/ s/,$//}' > db.sql

目前它不支持转换所有特定于mysql的语句,可以随意编辑和添加其他转换。

答案 1 :(得分:1)

MySQL生成的SQL脚本是针对MySQL运行的。它包含其他数据库不支持的选项和功能。

related question中所述,您可以尝试使用compatibility option创建转储。但您可能仍需要手动修复问题。