如何将数据导入内存数据库?

时间:2009-05-24 14:10:48

标签: mysql sql-server database import hsqldb

有没有办法将MS SQL,MySQL等数据库中的数据导入内存数据库,如HSQLDB,H2等?

8 个答案:

答案 0 :(得分:2)

H2支持initialized the database from a SQL script file

的特殊数据库网址
"jdbc:h2:mem;INIT=RUNSCRIPT FROM '~/create.sql'"

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

答案 1 :(得分:1)

我认为你需要做

  1. 从MS SQL中查询数据

  2. 使用API​​

  3. 将数据导入内存数据库

    SQL表达式或与DB相关的API

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

这实际上取决于你的想法。 是否有一个工具可以自动完成而无需编程?也许

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

如果您最喜欢的语言不支持这两种语言,请尝试使用其中的语言。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

正如其他人所指出的那样,为此还有能力和维护良好的第三方工具。