2017-02-20 1 views
0

私たちはお互いに関連して、データベースのいくつかのペア、すなわちメインデータベースのないSQLite?

  • DB1Aとdb1bを持って
  • DB2AとDB2B
  • がある
  • などdb3aとdb3b

db1aとdb1b、2aと2bの間のクロスdbジョイント

開いているsqliteデータすなわち、接続することができ、すなわち、それらは接続可能であり、すなわち、必要に応じて、それらを取り外して他の対と交換することができる。

もともと接続するデータベースがないため、データベースの「接続」はどのように作成する必要がありますか?最初のデータベースをメインデータベースとして使用すると意味がありません。重要な意味はありません。それは後で妨げになる可能性があります。

私が見ることができる唯一の方法は、:memory:または一時的な('')データベース接続を開くことです。より良いオプションがありますか?

答えて

1

より良い代替手段がない場合、:memory:が最適です。 (:temp:は通常のファイル名であり、多くのOSでは無効であり、一時DBには空のファイル名があります)。

他のすべてのデータベースを一覧表示するメタデータベースがある場合は、それを使用できます。

複数のデータベースが接続されている場合、いずれかのデータベースに変更を加えた場合は、複数のデータベースによるトランザクションが発生します。 したがって、さまざまなデータベースペアが、異なる番号を持つ他のデータベースと何の関係も持た​​ない場合は、各ペアに新しい接続を使用することを検討してください。

+0

ありがとうございました:temp:glitch - 私は一時データベースを意味しました。単一のデータベースを変更するとマルチデータベーストランザクションが発生する理由はありますか? – Eiko

+1

トランザクションの開始時に、データベースは他のトランザクションで変更を行うかどうかを知りません。いずれにせよ、すべてが原子性を保持するためにロックされていなければなりません。 –

関連する問題