【问题标题】:make temporary database with sqlite使用 sqlite 制作临时数据库
【发布时间】:2021-09-20 04:44:46
【问题描述】:

我想建立一个临时数据库,但我不知道我的方法是否正确 我收到错误 no such table: list 但我不知道为什么 python 会引发该错误 这是我的代码:

def connect():
    conn = sqlite3.connect(":memory:")
    cur = conn.cursor()
    cur.execute(
       "CREATE TABLE IF NOT EXISTS list (id INTEGER PRIMARY KEY , namee VARCHAR , number INTEGER ,"
       " price INTEGER )"
    )
    conn.commit()
    conn.close()

def insert(name, number, price):
    conn = sqlite3.connect(":memory:")
    cur = conn.cursor()
    cur.execute(
        "INSERT INTO list VALUES (NULL ,?,?,?,?,?)", (name, number, price)
    )
    conn.commit()
    conn.close()

def view():
    conn = sqlite3.connect(":memory:")
    cur = conn.cursor()
    cur.execute(
        "SELECT * FROM list"
    )
    rows = cur.fetchall()
    conn.close()
    return rows

def delete(id):
    conn = sqlite3.connect(":memory:")
    cur = conn.cursor()
    cur.execute("DELETE FROM list WHERE id=?", (id,))
    conn.commit()
    conn.close()


connect()

这是我的错误:

Traceback (most recent call last):
  File "D:\python\WindowsProject\app\user\memory.py", line 42, in <module>
    print(insert('pizza',2,6))
  File "D:\python\WindowsProject\app\user\memory.py", line 17, in insert
    cur.execute(
sqlite3.OperationalError: no such table: list

【问题讨论】:

    标签: python sqlite tkinter


    【解决方案1】:

    sqlite3.connect(":memory:") 创建一个内存数据库,该数据库仅在连接处于使用状态时才存在。

    问题是您正在关闭每个函数中的数据库连接。一旦你关闭它,内存数据库就会消失。 INSERT 失败,因为表不再存在。

    您需要保留(或传递)conncur 对象,以便您可以在函数之间使用它们。

    【讨论】:

    • 嗨,经过 13 天的尝试通过编辑代码和在网络上搜索来找到这个问题的答案后,我找不到我的问题的答案,你能给我这个问题的代码吗???
    猜你喜欢
    • 1970-01-01
    • 2010-10-25
    • 2012-07-13
    • 2018-04-07
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多