我有管理文件的数据库。有多个原因是他们生活在不同的驱动器上(想想USB驱动器)。我想编写适用于所有驱动器上的文件的查询。问题是我无法取消视图以使用另一个数据库(正在使用)重新创建它。因此,我想知道是否有办法在.databases
的每个数据库中编写一个视图来联合所有具有相同名称的表?这样,当附加一个新数据库时,我不必删除该视图。
也许作为最接近的答案,是否可以在ATTACH上编写触发器并让触发器重新创建视图(为了至少最小化停机时间)?
答案 0 :(得分:0)
SQLite不支持我所知道的任何类型的“附加”触发器,只支持删除,插入和更新。
您想要做的最好是由您的程序完成,而不是在SQLite本身内部。您可以随时在自己的代码中手动删除并重新创建视图(因为视图无法修改),无论何时进行连接。当然这需要一个锁(使表无法按照你的说法使用),但即使SQLite正在为你工作,这可能也是必要的。
无论哪种方式,视图创建都非常快,因此它不应该影响程序的性能。