跨多个数据库的SQLite视图。这个可以吗?有没有更好的办法?

时间:2010-09-27 21:46:12

标签: sql view sqlite large-data-volumes multi-database

使用SQlite我将大型数据库拆分为多年:    DB_2006_thru_2007.sq3    DB_2008_thru_2009.sq3    DB_current.sq3 它们都有一个表调用hist_tbl,有两列(键,数据)。

要求是: 1.能够一次访问所有数据。 2. insert仅转到当前版本。 3.随着时间的推移,数据将继续分裂。 4.通过具有独占访问权限的单个程序进行访问。 5.程序可以接受一些设置SQL,但在访问一个数据库或多个数据库时需要运行相同的程序。

要内聚地查看它们,我会执行以下操作(实际上是在程序中,但是此处显示的命令行):    sqlite3 DB_current.sq3

  

将数据库'DB_2006_thru_2007.sq3'附加为hist1;   将数据库'DB_2008_thru_2009.sq3'附加为hist2;   创建临时视图hist_tbl为           从hist1.hist_tbl union中选择*           select * from hist2.hist_tbl union           select * from main.hist_tbl;

现在有一个temp.hist_tbl(view)和一个main.hist_tbl(表)。 当我选择没有限定表格时,我通过视图获得数据。 这是可取的,因为我可以根据我的设置使用我的固定sql查询对联接视图或单个数据库。另外,我总是可以插入main.hist_tbl。

问题1:缺点是什么? 问题2:有更好的方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

问题1:缺点是什么?

您必须更新视图 EVERY 。的财政即可。年。

问题2:有更好的方法吗?

添加日期列,以便您可以搜索给定时间范围内的内容,例如会计年度。