Ich versuche eine In-Memory-Datenbank mit sqlite3
in Python zu erstellen.Wie kann ich mit SQLite eine In-Memory-Datenbank erstellen?
Ich habe eine Funktion erstellt, um eine Datenbank-Datenbank-Datei zu erstellen und Informationen darin zu speichern, und das funktioniert 100%.
Aber versuchen, mit :memory:
verbinden Ich habe einige Probleme konfrontiert.
Was ich tue, ist:
import sqlite3
def execute_db(*args):
db = sqlite3.connect(":memory:")
cur = db.cursor()
data = True
try:
args = list(args)
args[0] = args[0].replace("%s", "?").replace(" update "," `update` ")
args = tuple(args)
cur.execute(*args)
arg = args[0].split()[0].lower()
if arg in ["update", "insert", "delete", "create"]: db.commit()
except Exception as why:
print why
data = False
db.rollback()
db.commit()
db.close()
return data
Namentabelle
execute_db("create table name(name text)")
schaffen, die
True
einige Informationen zu dieser Tabelle einfügen zurück
execute_db("insert into name values('Hello')")
die
no such table: name False
zurück Warum funktioniert das nicht? Es funktioniert, wenn ich eine Datei:
db = sqlite3.connect("sqlite3.db")
Warum die doppelte 'db.commit()' wenn Daten geändert werden? –
@MartijnPieters Ohh, mein schlechtes Dankeschön. – Deounix