我们一直致力于一个项目。一开始我们遇到了一些数据库问题,所以我们使用了一个mySQL-server数据库来解决这个问题。
现在我们真的应该回到嵌入式数据库,访问是不可能的(必须是跨平台的)
我们的导师建议使用H2嵌入式数据库,但是如果我们尝试在H2的控制台中运行它,我们的sql-dump会出现语法错误。
有什么想法? 提前谢谢!
答案 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创建转储。但您可能仍需要手动修复问题。