2012-02-16 4 views
2

db1とdb2の2つのSQLiteデータベースが1つの接続に接続されています。私は両方のデータベースのテーブルを結合し、それがどのデータベースから来たのかを指定する列 'データベース'を追加するビューを持っています。代わりに、正しいデータベースに挿入するビューに挿入時にトリガーを作成しようとしています。SQLiteのクエリに応じて異なるデータベースに挿入できますか?

は、テーブルのデータの次のスキーマを想像:

 
id  INTEGER PRIMARY KEY, 
parent INTEGER, 
data TEXT 

これは、ビューのDataViewのスキーマのようになります。

 
id  INTEGER PRIMARY KEY, 
database TEXT, 
parent INTEGER, 
data  TEXT 

私がこれまで持っているもの:

 
CREATE TRIGGER DataViewInsertTrigger AFTER INSERT ON DataView 
BEGIN 
    INSERT INTO database.Data 
     SELECT database 
     FROM DataView 
     WHERE id=new.parent 
END; 

です私は可能なことをやろうとしているのですか?もしそうなら、私はどのようにトリガを終了するだろうか?

答えて

0

Borealidがトリガー自体が別のファイルに挿入できないのは正しいとはいえ、独自のsqlite関数を呼び出して別のファイルに挿入するクエリを生成することができます。

1

いいえ、トリガーで取得した情報に基づいて全く異なるデータベースに挿入することはできません。トリガは、それを呼び出したデータベースに固有のコンテキストで実行されます。他のデータベースは、SQLiteでは完全に無関係なファイルにあります。

2つの接続を1つだけ接続しても、もう一方の接続を使用できるわけではありません。 1つのDBだけをロードした接続を介して作成されたクエリからトリガをトリップした場合はどうなりますか?

おそらく同じデータベースに2つのテーブルが必要ですか?

関連する問題