插入到 sqlite 视图中是如何工作的?
我有一个在文件 1.sqlitedb 到 n.sqlitedb 中相同的数据库架构。我使用视图来“合并”所有数据库。我的问题是:当我插入视图时,数据会插入到哪个数据库中?有什么办法可以控制哪个获取数据吗?我需要分割数据的方式取决于数据本身。本质上,我使用字段的第一个字母来确定它插入到的文件。任何帮助将不胜感激。谢谢!
I have a database schema which is identical in files 1.sqlitedb through n.sqlitedb. I use a view to 'merge' all of the databases. My question is: when i insert into the view, into which database does the data get inserted into? Is there any way to control which gets the data? The way that i need to split the data depends on the data itself. Essentially, i use the first letter of a field to determine the file that it gets inserted into. Any help would be appreciated. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
SQLite 不支持写入视图,就像其他数据库一样。
一个
为了实现类似的功能, 必须创建触发器来完成必要的工作。
Writing to views is NOT supported for SQLite like it is with other dbs.
http://www.sqlite.org/omitted.html
In order to achieve similar functionality, one must create triggers to do the necessary work.
我们需要在视图 (VIEW_NAME) 上实现而不是触发器。所以当插入/更新发生时 view 。我们可以在触发器主体中插入更新基础对象(TABLE_NAME)。
在 VIEW_NAME 上创建触发器触发器名称而不是 INSERT
开始
插入 TABLE_NAME ( col1 ,col2 ) 值 (:new.col1, :new.col2);
结尾;
We need to implement instead of trigger on the view (VIEW_NAME) . So when insert/update happens view . we can insert update underlying object (TABLE_NAME) in the trigger body.
CREATE TRIGGER trigger_name instead of INSERT on VIEW_NAME
BEGIN
insert into TABLE_NAME ( col1 ,col2 ) values ( :new.col1, :new.col2);
END;
我不确定我是否理解您的问题,但是您是否研究过使用 ATTACH DATABASE 命令?它允许您将单独的数据库文件连接到单个数据库。您可以通过添加数据库名称前缀 (INSERT INTO db1.Table) 来控制对特定数据库的 INSERT。
http://www.sqlite.org/lang_attach.html
I'm not sure I understand your question, but have you looked into using the ATTACH DATABASE command? It allows you connect separate database files to a single database. You can control INSERTs into a specific database by prefixing the database name (INSERT INTO db1.Table).
http://www.sqlite.org/lang_attach.html