从 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 备份中仅导入特定行的主要内容,如果未能解决你的问题,请参考以下文章
原因:org.hsqldb.HsqlException: invalid statemnet - 导入 CSV 数据时需要文本表