Wie kann ich erstellen Sie eine in-memory-Datenbank mit sqlite?

Ich versuche zu schaffen, eine in-memory-Datenbank mit sqlite3 in Python.

Erstellte ich eine Funktion zum erstellen einer db-Datenbank-Datei und Informationen zu speichern, und das funktioniert 100%.

Aber versuchen, eine Verbindung mit :memory: ich konfrontiert haben einige Probleme.

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
  1. name erstellen Tabelle

    execute_db("create table name(name text)")

    welche zurückgegeben True

  2. legen Sie einige Informationen zu dieser Tabelle

    execute_db("insert into name values('Hello')")

    welche zurückgegeben

    no such table: name
    False

Warum funktioniert das nicht? Es funktioniert, wenn ich eine Datei verwenden:

db = sqlite3.connect("sqlite3.db")
  • Warum die Doppel - db.commit() bei der änderung von Daten?
  • Ohh, mein schlechtes thank u.
InformationsquelleAutor Deounix | 2016-07-30
Schreibe einen Kommentar