在Firebird中复制一个表

时间:2017-10-26 15:11:10

标签: firebird

我目前正在编写一个(C ++)程序,它将csv文件读入Firebird数据库。在算法期间,我的表被修改。 由于整个阅读过程需要几分钟,我已经将阅读部分作为可选项,因此如果数据库已经填满数据,用户可以决定不更新它。

当多次运行程序时,我想使用原始数据,而不是上次运行期间修改过的数据,所以我想做类似的事情

  

创建table table1_backup as(select * from table1);

然后,重新启动程序时(如果我们不想更新数据)

  

删除表table1;   将table table1创建为(select * from table1_backup);

看起来,在Firebird中复制表格并不是这样的。

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

您无法在Firebird中的另一个表中创建表格。另请参阅Does Firebird support creating tables using SELECT statement?

根据评论Arioch 'The的建议,您可能正在寻找global temporary tables。全局临时表具有持久性DDL,但数据仅对单个事务(on commit delete rows)可见或仅对插入数据的连接(on commit preserve rows)可见。

在对数据库进行永久性更改之前,您可以使用临时表作为临时区域。

相关问题