簡體   English   中英

Python和sqlite3-沒有這樣的表

[英]Python and sqlite3 - no such table

我正在通過本教程http://zetcode.com/db/sqlitepythontutorial/學習python中的sqlite3。 我開始了“插入數據”一章。 我運行了這段代碼:

import sqlite3 as lite
import sys

con = lite.connect('test.db')

with con:

    cur = con.cursor()    
    cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")
    cur.execute("INSERT INTO Cars VALUES(1,'Audi',52642)")
    cur.execute("INSERT INTO Cars VALUES(2,'Mercedes',57127)")
    cur.execute("INSERT INTO Cars VALUES(3,'Skoda',9000)")
    cur.execute("INSERT INTO Cars VALUES(4,'Volvo',29000)")
    cur.execute("INSERT INTO Cars VALUES(5,'Bentley',350000)")
    cur.execute("INSERT INTO Cars VALUES(6,'Citroen',21000)")
    cur.execute("INSERT INTO Cars VALUES(7,'Hummer',41400)")
    cur.execute("INSERT INTO Cars VALUES(8,'Volkswagen',21600)")

然后我在OS X終端中做了這個:

sqlite> .mode column  
sqlite> .headers on
sqlite> SELECT * FROM Cars;

這發生了:

Error: no such table: Cars

我不知道為什么 Test.db和腳本的方向相同。 我正在尋找此問題,但只找到了我不理解的解決方案。

我最近遇到了這個問題,因為我也在學習python和sqlite。 據我所知,對數據庫所做的修改將保留在內存中,直到您提交更改為止。 當您不再需要訪問數據庫時,您還需要關閉數據庫。 我不確定with con:方法是否會為您提交甚至關閉數據庫。 將這些行添加到腳本的末尾。

con.commit()
con.close()

您可以在python sqlite3文檔頁面的第二個代碼blurb中見證這些命令的使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM