我正在查看其他人在python中使用sqlite3创建表的代码,我认为我的代码实际上是匹配的,但是我不断地得到一个错误。有人能帮我理解我哪里出错了吗?谢谢您!
import sqlite3
conn = sqlite3.connect('finances.db')
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS orders (ID INT, DATE TEXT, CHECK TEXT, AMOUNT REAL,DESC TEXT)")
conn.commit()
conn.close()
错误:
line 17, in <module>
c.execute("CREATE TABLE IF NOT EXISTS orders (ID INT, DATE TEXT, CHECK TEXT, AMOUNT REAL,DESC TEXT)")
sqlite3.OperationalError: near "TEXT": syntax error
1条答案
按热度按时间ktca8awb1#
CHECK
是sqlite中的保留字。您需要用双引号将其括起来,或者更好地将列的名称改为其他名称,这样以后编写查询时就不必担心这个问题。我还主张反对列名称,如
DATE
以及DESC
; 尽管sqlite允许这样做,但它们显然与sql关键字相对应,这使得它们在本质上是不明确的:参考:sqlite关键字。