我想用 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()
您的 SQLite 请求中有两个拼写错误。
EXISTS
,不是EXIST
。所以正确的查询将如下所示:
CREATE TABLE IF NOT EXISTS students (id INTEGER NOT NULL PRIMARY KEY, firstname text, infix text, lastname text, degree integer, Year integer)
澄清评论 - 我想您的查询中存在拼写错误(来自docs):
“尝试在已包含同名表、索引或视图的数据库中创建新表通常是错误的。但是,如果将
IF NOT EXISTS
子句指定为 CREATE TABLE
语句的一部分,并且如果已经存在同名的表或视图,则 CREATE TABLE
命令根本不起作用(并且不会返回错误消息)。如果由于现有索引而无法创建表,即使 仍然会返回错误指定IF NOT EXISTS
子句。”