sqlite3.OperationalError:near“,”:语法错误

时间:2014-04-04 18:22:37

标签: python sql sqlite

更新1: 另一条线工作(感谢您的帮助!)。现在我试图运行以下,这也不会工作,我得到第13行的错误:sqlite3.OperationalError:near",":语法错误

代码如下:

cur.execute("CREATE TABLE Progress(Id INTEGER PRIMARY, Username STRING, Topic1 STRING, Topic2 STRING, Topic3 STRING, Topic4 STRING, 1Result STRING, 2Result STRING, 3Result STRING, 4Result STRING, TResut STRING, TCorrect INTEGER, TWrong INTEGER, TAttempted INTEGER)")
cur.exectue("INSERT INTO Progress VALUES(1, 'Admin', 'Algebra', 'Number', 'Shape, Space and Measures', 'Handling Data', '100%', '100%', '100%', '100%', '100%', '10', '0', '10')")

我创建了一个如下所示的SQL表,并尝试将一些数据输入到表中,但我不断收到以下错误:sqlite3.OperationalError:near" 1":语法错误

con = lite.connect('Records.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE Questions(Id INTEGER PRIMARY KEY, Question STRING, Answer STRING, Mark INTEGER, Topic STRING, Incorrect STRING, QType STRING)")
    cur.execute("INSERT INTO Questions(1, 'What is 2/3 of 6?', '4', '1', 'Fractions', 'None', 'Numerical')")

2 个答案:

答案 0 :(得分:1)

INSERT statement错了;你需要VALUES关键字。它应该是:

cur.execute("INSERT INTO Questions VALUES (1, 'What is 2/3 of 6?', '4', '1', 'Fractions', 'None', 'Numerical')")
#                          --------^^^^^^

您将列放在SQL期望列名称的(可选)列表中。

答案 1 :(得分:1)

您可以在http://sqlite.org/lang_insert.html

找到您想要执行的操作的语法

在您的示例中,您将输入

cur = con.cursor()
cur.execute("CREATE TABLE Questions(Id INTEGER, Question STRING, Answer STRING)")
cur.execute("INSERT INTO Questions VALUES(1, 'What is 2/3 of 6?', '4')")

我觉得在提交Python代码之前有一个方便测试的sqlite环境很有帮助。

相关问题