【问题标题】:Can I insert into different databases depending on a query in SQLite?我可以根据 SQLite 中的查询插入不同的数据库吗?
【发布时间】:2012-02-16 23:16:25
【问题描述】:

我有两个 SQLite 数据库连接到一个连接:db1 和 db2。我有一个观点,即联合两个数据库中的表,并添加一个“数据库”列,指定它来自哪个数据库。我正在尝试在插入视图时创建一个触发器,该触发器将插入到正确的数据库中。

想象一下数据表的以下架构:

id 整数主键, 父整数, 数据文本

这将是视图 DataView 的架构:

id 整数主键, 数据库文本, 父整数, 数据文本

到目前为止我所拥有的:

在 DataView 上插入后创建触发器 DataViewInsertTrigger 开始 插入数据库。数据 选择数据库 从数据视图 WHERE id=new.parent 结尾;

我正在尝试做的事情是否可能?如果是这样,我将如何完成触发器?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    不,您不能根据您在触发器中获得的信息插入完全不同的数据库。触发器使用特定于调用它的数据库的上下文执行。另一个数据库将在一个完全不相关的文件中,在 SQLite 中。

    您有一个连接两个连接的事实并不能使另一个连接可用。如果您从通过仅加载一个 DB 的连接进行的查询触发了触发器,会发生什么情况?

    也许您希望同一个数据库中有两个表?

    【讨论】:

      【解决方案2】:

      虽然 Borealid 是正确的,触发器本身不能插入到不同的文件中,但您可以做的是调用一个自定义的 sqlite 函数,该函数本身会生成一个查询以插入到不同的文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多