2

有什么方法可以将 MS SQL、MySQL 等数据库中的数据导入 HSQLDB、H2 等内存数据库?

4

8 回答 8

2

H2 支持从 SQL 脚本文件初始化数据库的特殊数据库 URL :

"jdbc:h2:mem;INIT=RUNSCRIPT FROM '~/create.sql'"

据我所知,HSQLDB 和 Apache Derby 不支持这样的功能。

于 2011-05-02T12:10:26.263 回答
1

我认为你需要做

  1. 从 MS SQL 中查询数据

  2. 使用 API 将数据导入内存数据库

SQL 表达式或 DB 相关 API

于 2009-05-24T14:19:55.190 回答
1

在 Hibernate 中:将 import.sql 添加到类路径效果很好,hbm2dll 检查文件是否存在并执行它。唯一的细节是每个sql命令最多在一行,否则会执行失败

于 2011-05-01T17:18:58.920 回答
0

您可以将数据转储为 SQL INSERT 语句,然后将其读回。

您可以读取临时对象(如结构),然后写回内部数据库。

于 2009-05-24T14:21:13.737 回答
0

最新版本的 HSQLDB 允许您在 HSQLDB 中将 CSV(逗号分隔值)或其他分隔符分隔的数据文件作为 TEXT TABLE 打开,即使使用 mem: 数据库,也可以将其复制到其他表中。

正如其他人所指出的,为此目的也有功能强大且维护良好的第三方工具。

于 2011-06-16T13:46:03.493 回答
0

查看免费的“通用数据库转换器” http://eva-3-universal-database-converter-udc.optadat-com.qarchive.org/——它确实声称支持 MySQL、MS-SQL 和 HSQLDB,其中其他。

于 2009-05-24T15:55:36.597 回答
0

这真的取决于你的想法。是否有无需编程即可自动完成的工具?也许。

你想开发它吗?然后找出您最喜欢的语言是否同时支持数据库引擎(标准和内存),如果支持,只需编写一个脚本即可。分块处理所有内容(一次获取n行然后插入它们;重复)。块大小有多大?这取决于你,尝试不同的尺寸(比如 100、500、1k 等)看看哪一个在你的硬件上表现更好,微调到最佳位置。

另一方面,如果您最喜欢的语言不支持这两种语言,请尝试使用支持的语言。

于 2009-05-24T16:08:56.080 回答
0

您可以使用dbunit将数据库转储到 xml 文件并将其导入回另一个 rdbms。

于 2009-05-25T14:54:04.597 回答