2011-05-15 118 views
1

我们一直致力于一个项目。一开始我们有一些数据库问题,所以我们使用mySQL-server数据库来解决这个问题。如何将mySql数据库导出到嵌入式数据库(例如H2)?

现在我们确实应该回去嵌入式数据库,访问是出了问题(必须是跨平台)

使用H2嵌入式数据库我们的导师建议,但我们我们的SQL转储越来越语法错误,如果我们试图在H2的控制台中运行它。

有什么想法? 在此先感谢!

+0

SQLite呢? – Tomas 2011-05-15 16:54:58

+0

thx的提示! – user754656 2011-05-15 18:46:30

+0

你得到了什么样的语法错误?如果可能的话,我会尝试修复这些(使SQL脚本数据库独立)。 – 2011-05-16 07:38:01

回答

1

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

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

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具体报表折算,随意编辑和添加额外的转换。

+0

我对这个脚本进行了扩展,看一下https://github.com/Joebh/MysqlDumpToH2 – 2015-01-15 15:31:15