在sqlite3 python中创建表

use*_*979 3 python sqlite

我事先向您提出这样的基本问题表示歉意,但我是SQlite3的新手,因此无法启动。我试图建立一个表的数据库。我使用以下代码构建表。

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE mytable
         (start, end, score)''')
Run Code Online (Sandbox Code Playgroud)

但是,每当我尝试更新或访问该表时,它似乎都不存在或者可能存在于其他数据库中。我也尝试创建一个名为example.mytable的表,但出现错误:sqlite3.OperationalError:未知数据库示例

我想念什么?谢谢

Chr*_*ser 5

我认为插入后需要提交(架构更改,例如新表应自动提交)。我建议您也将完整路径添加到数据库中,以确保下次访问同一位置。

这是您代码的扩展:

import sqlite3

def create():
    try:
        c.execute("""CREATE TABLE mytable
                 (start, end, score)""")
    except:
        pass

def insert():
    c.execute("""INSERT INTO mytable (start, end, score)
              values(1, 99, 123)""")

def select(verbose=True):
    sql = "SELECT * FROM mytable"
    recs = c.execute(sql)
    if verbose:
        for row in recs:
            print row

db_path = r'C:\Users\Prosserc\Documents\Geocoding\test.db'
conn = sqlite3.connect(db_path)
c = conn.cursor()
create()
insert()
conn.commit() #commit needed
select()
c.close()
Run Code Online (Sandbox Code Playgroud)

输出:

(1, 99, 123)
Run Code Online (Sandbox Code Playgroud)

关闭程序后,如果我登录到SQLite数据库,则数据仍然存在。