Python3.6使用sqlite3报错:no such table: Example 求助
解决sqlite3.OperationalError: no such table: Example的问题
嘿,这个问题很典型——你已经写了创建表的函数,但忘记调用它了!
你定义了create_table()函数来创建Example表,但在执行插入数据的enter_data()之前,从来没运行过这个函数,所以SQLite数据库里根本不存在这个表,自然会抛出"no such table"的错误。
修正后的完整代码
import sqlite3 conn = sqlite3.connect('tutorial.db') c = conn.cursor() def create_table(): # 加上IF NOT EXISTS,避免重复创建表时触发错误 c.execute("CREATE TABLE IF NOT EXISTS Example(Language VARCHAR, Version REAL, Skill TEXT)") def enter_data(): c.execute("INSERT INTO Example VALUES('Python', 2.7, 'Beginner')") # 先创建表! create_table() enter_data() # 别忘了提交事务,否则数据不会真正写入数据库 conn.commit() conn.close()
几个关键注意点:
- 必须先调用创建表的函数:在插入数据前,确保
Example表已经被创建出来,所以要先执行create_table() - 提交事务:SQLite默认不会自动提交修改,插入数据后一定要调用
conn.commit(),不然你的数据不会被保存到数据库文件里 - 避免重复创建表的错误:给
CREATE TABLE语句加上IF NOT EXISTS,这样即使你多次运行代码,也不会因为表已经存在而报错
这样修改后,你的代码就能正常插入数据啦!
内容的提问来源于stack exchange,提问作者Wannabe
相关产品推荐
相关产品推荐

