我正在努力在数据库中创建一个新表。在创建其他表之前,我已经完成了此操作,但是这次我遇到语法错误。据我所见,语法是正确的。因此,我无法弄清楚。
下面,该语句的代码片段引发了错误:
cursor.execute('''
CREATE TABLE IF NOT EXISTS order(
orderID INTEGER PRIMARY KEY,
productname STRING,
productprice FLOAT,
productquanitity INTEGER,
producttotal INTEGER;''')
这是错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "N:/NEW/cashregister.py", line 42, in okitem
producttotal INTEGER;''')
sqlite3.OperationalError: near "order": syntax error
对于造成这种情况的一些建议,我将不胜感激。
答案 0 :(得分:2)
order
是SQL中的保留关键字;参见documentation for the full list of reserved keywords that SQLite uses。
使用"order"
使SQLite理解它将被解释为表名。您还忘记了结局)
:
CREATE TABLE IF NOT EXISTS "order" (
orderID INTEGER PRIMARY KEY,
productname STRING,
productprice FLOAT,
productquanitity INTEGER,
producttotal INTEGER
)