2017-08-02 4 views
0

Je souhaite créer plusieurs bases de données sqlite en mémoire avec des noms en python.Créer une base de données sqlite en mémoire avec le nom de la base de données en python

En ligne de commande sqlite il est possible de faire avec cette syntaxe:

':memory:' AS database_name 

mais lorsque vous l'utilisez dans les chaînes de conenction python comme ceci:

con = sqlite3.connect("':memory:' AS database_name") 

get erreur.

Mon problème est comment pouvons-nous créer plusieurs bases de données de mémoire avec des noms pour y accéder.

Comment on pourrait faire ça en python?

Répondre

2

La clause AS ne fonctionne qu'avec le ATTACH statement, mais pas pour la base de données principale (toujours appelée main).

Et l'identification d'une base de données vient de son nom de fichier, donc changer le nom de la base de données ne serait pas utile de toute façon.

Pour utiliser un nom « fichier » personnalisé pour une base de données en mémoire, utilisez un URI file name avec le paramètre mode:

conn = sqlite3.connect("file:blah?mode=memory", uri=True) 

Mais pour joindre une autre base de données en mémoire avec un nom de base de données personnalisée au même connexion, il suffit d'exécuter ATTACH normalement:

conn.execute("ATTACH ':memory:' AS db2") 
+0

voulez-vous me montrer un exemple qui est nécessaire pour mon but? –