sqlite3.OperationalError [已关闭]

问题描述 投票:0回答:2

我想用 Python 创建数据库,但出现此错误:

c.execute("""CREATE TABLE IF NOT EXIST students (
sqlite3.OperationalError: near "EXIST": syntax error

这是我的代码:

import sqlite3

conn = sqlite3.connect('students.db')

c = conn.cursor()

c.execute("""CREATE TABLE IF NOT EXIST students (
            id INTEGER NOT NULL PRIMARY KEY,
            firstname text,
            infix text,
            lastname text,
            degree integer,
            Year integer,
            )""")
conn.commit()
python database sqlite syntax-error
2个回答
0
投票

您的 SQLite 请求中有两个拼写错误。

  1. EXISTS
    ,不是
    EXIST
  2. 字段列表末尾的尾随逗号。

所以正确的查询将如下所示:

CREATE TABLE IF NOT EXISTS students (id INTEGER NOT NULL PRIMARY KEY, firstname text, infix text, lastname text, degree integer, Year integer)

0
投票

澄清评论 - 我想您的查询中存在拼写错误(来自docs):

“尝试在已包含同名表、索引或视图的数据库中创建新表通常是错误的。但是,如果将

IF NOT EXISTS
子句指定为
CREATE TABLE
语句的一部分,并且如果已经存在同名的表或视图,则
CREATE TABLE
命令根本不起作用(并且不会返回错误消息)。如果由于现有索引而无法创建表,即使
 仍然会返回错误指定IF NOT EXISTS
子句。”

© www.soinside.com 2019 - 2024. All rights reserved.