将表插入到我使用 sqlite 在 python 中创建的数据库中时出错
Posted
技术标签:
【中文标题】将表插入到我使用 sqlite 在 python 中创建的数据库中时出错【英文标题】:error with inserting a table into a database I created in python using sqllite 【发布时间】:2016-12-25 00:40:06 【问题描述】:每次我尝试在我创建的标题为“教程”的数据表中创建一个表时,都会出现错误。这是我的python代码:
import sqlite3
conn=sqlite3.connect('tutorial.db')
c=conn.cursor()
def create_table():
c.execute("CREATE TABLE example(Language VARCHAR , Version REAL, Skill TEXT)")
def enter_data():
c.execute("INSERT INTO example VALUES('Python',3.3,'Intermediate')")
c.execute("INSERT INTO example VALUES('Python',2.7,'Beginner')" )
c.execute("INSERT INTO example VALUES('Python',3.4,'Expert')" )
conn.commit()
enter_data()
#conn.close()
这是我运行代码时出现的错误:
Traceback(最近一次调用最后一次): 文件“C:/Users/Pentazoid/Desktop/成为专业的 python 程序员/第 2 节 web python 编程/insert_data.py”,第 19 行,在 输入数据() 文件“C:/Users/Pentazoid/Desktop/成为专业的 Python 程序员/第 2 节 web python 编程/insert_data.py”,第 13 行,在 enter_data c.execute("INSERT INTO example VALUES('Python',3.3,'Intermediate')") sqlite3.OperationalError:没有这样的表:示例
怎么了?
【问题讨论】:
【参考方案1】:您没有执行 create_table()
,因此该表永远不会创建,enter_data()
在尝试插入时找不到它。
【讨论】:
【参考方案2】:您应该在插入语句之前调用该函数来创建表并提交:
import sqlite3
conn = sqlite3.connect('tutorial.db')
c = conn.cursor()
def create_table():
c.execute("CREATE TABLE example(Language VARCHAR , Version REAL, Skill TEXT)")
def enter_data():
create_table()
conn.commit()
c.execute("INSERT INTO example VALUES('Python',3.3,'Intermediate')")
c.execute("INSERT INTO example VALUES('Python',2.7,'Beginner')" )
c.execute("INSERT INTO example VALUES('Python',3.4,'Expert')" )
conn.commit()
enter_data()
但是,考虑使用 SQLAlchemy
【讨论】:
【参考方案3】:首先在命令行中执行create_table()
以创建表(如上所述)。然后添加enter_data()
进行插入。
【讨论】:
以上是关于将表插入到我使用 sqlite 在 python 中创建的数据库中时出错的主要内容,如果未能解决你的问题,请参考以下文章
Java SQLite 数据库,插入条目给出 nullPointerException
如何在 Android 中将 Arraylist 插入 sqlite?
SQLite插入 - 如何使用参数化值避免语法错误时插入任何文本
如何提高 Python 3.6 中的 SQLite 插入性能?