View 插入sqlite视图如何工作?

View 插入sqlite视图如何工作?,view,insert,sqlite,View,Insert,Sqlite,我有一个数据库模式,它在文件1.sqlitedb到n.sqlitedb中是相同的。我使用视图“合并”所有数据库。我的问题是:当我插入视图时,数据会插入到哪个数据库中?有没有办法控制谁来获取数据?我需要拆分数据的方式取决于数据本身。本质上,我使用字段的第一个字母来确定它插入的文件。任何帮助都将不胜感激。谢谢 我不确定是否理解您的问题,但您是否考虑过使用ATTACH DATABASE命令?它允许您将单独的数据库文件连接到单个数据库。可以通过在数据库名称前面加前缀(INSERT into db1.Ta

我有一个数据库模式,它在文件1.sqlitedb到n.sqlitedb中是相同的。我使用视图“合并”所有数据库。我的问题是:当我插入视图时,数据会插入到哪个数据库中?有没有办法控制谁来获取数据?我需要拆分数据的方式取决于数据本身。本质上,我使用字段的第一个字母来确定它插入的文件。任何帮助都将不胜感激。谢谢

我不确定是否理解您的问题,但您是否考虑过使用ATTACH DATABASE命令?它允许您将单独的数据库文件连接到单个数据库。可以通过在数据库名称前面加前缀(INSERT into db1.Table)来控制对特定数据库的插入


SQLite不支持像其他数据库那样写入视图


为了实现类似的功能,必须创建触发器来完成必要的工作。

我们需要在视图(视图名称)上实现而不是触发器。因此,当插入/更新发生在视图中时。我们可以在触发器主体中插入更新基础对象(表名称)

创建触发器名称,而不是在视图名称上插入 开始 在表_NAME(col1,col2)中插入值(:new.col1,:new.col2);
结束

为什么要将数据拆分到多个文件中?sqlite中的文件大小没有实际限制。我认为您不能。尝试使用表达式代替要插入的数据库名称,但我担心会出现语法错误。这些字母是驱动器号。该数据库是独立可移动数据库的组合,因此文件位于不同的驱动器上