title: How to create multiple ":memory:" databases in sqlite3
body: <p>I am trying to create multiple in-memory databases with sqlite3 (if possible).
  For on-disk databases, I would do:</p>
  
  <pre><code>import sqlite3 
  
  db1 = sqlite3.connect('/mnt/tmp/db1.db')
  db2 = sqlite3.connect('/mnt/tmp/db2.db')
  db3 = sqlite3.connect('/mnt/tmp/db3.db')
  </code></pre>
  
  <p>If I instead do:</p>
  
  <pre><code>db1 = sqlite3.connect("file::memory:?cache=shared")
  db2 = sqlite3.connect("file::memory:?cache=shared")
  db3 = sqlite3.connect("file::memory:?cache=shared")
  </code></pre>
  
  <p>Will this result in three separate in-memory databases? This seems to create three connections to a shared in-memory database, which is not what I want.</p>
  
  <p>I then proceed to create cursors on the databases (on-disk or in-memory) with:</p>
  
  <pre><code>cur_db1 = db1.cursor()
  cur_db2 = db2.cursor()
  cur_db3 = db3.cursor()
  </code></pre>
  
  <p>If multiple in-memory databases are not possible, is my best choice to use RAM-disk databases (as in my first code block), but then to execute <code>"PRAGMA journal_mode=MEMORY"</code> on these connections?</p>