从 hsqldb 备份中仅导入特定行

Posted

技术标签:

【中文标题】从 hsqldb 备份中仅导入特定行【英文标题】:Import only specific rows from hsqldb backup 【发布时间】:2013-06-27 05:04:14 【问题描述】:

我正在尝试在我的java 应用程序中创建一个函数,用户可以在其中选择先前制作的备份,但只导入不在当前数据库实例中的表行。使用mysql 数据库,我可以转储我的表,在.sql 中重命名它们以在再次导入时创建临时表,然后简单地交叉查询不在数据库中的所有行。知道如何在我的java 应用程序中在hsqldb 中完成类似的事情吗?

【问题讨论】:

【参考方案1】:

你可以这样做:

    打开备份数据库

    创建一个作为主表副本的文本表,例如CREATE TEXT TABLE yourtable_copy AS (SELECT * FROM yourtable)

    为表SET TABLE yourtable_copy SOURCE 'filepath'设置文件

    将数据复制到新表中

    使用SET TABLE yourtable_copy SOURCE OFF关闭源

    关闭备份数据库

    打开主数据库

    现在与主数据库进行相同的文本表创建和源设置,但不要复制数据,因为备份数据已经存在并且将被打开

    进行更新,然后在主数据库中关闭文本源

参考http://www.hsqldb.org/doc/2.0/guide/texttables-chapt.html

【讨论】:

以上是关于从 hsqldb 备份中仅导入特定行的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .sql 文件中仅导入特定数据库?

python 从Excel电子表格导入特定行的数据

DM8逻辑导入导出

如何从选定行的网格面板中仅获取特定值

将 CSV 文件导入 HSQLDB

原因:org.hsqldb.HsqlException: invalid statemnet - 导入 CSV 数据时需要文本表