使用Python创建SQLite表时提示<附近存在语法错误如何解决?
报错核心原因
你遇到的语法错误是两个SQL语法不规范的问题共同导致的:
- 错误1:非法使用占位符符号
<>
尖括号
<>仅在SQL相关文档里用于标注需要替换的占位内容,不属于可执行SQL语法的一部分,你代码中的<New>会被SQL解析器识别为非法字符,直接触发error near "<": syntax error报错。
如果你要将表名设为New,直接写表名即可;如果表名是SQL关键字、包含特殊字符或空格,可以用双引号/方括号/反引号包裹,例如"New"、[New]、`New`。
- 错误2:
CREATE TABLE语句缺少必填的列定义
SQLite 要求
CREATE TABLE语句必须在表名后补充括号包裹的列定义,至少包含一个列名和对应的数据类型,仅写表名也会触发后续语法错误。
修复后的代码示例
下面是创建包含基础字段的New表的修正代码:
import sqlite3 conn = sqlite3.connect('Chinook_Sqlite.sqlite') cursor = conn.cursor() result = None try: cursor.executescript("""CREATE TABLE New ( id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT );""") # CREATE TABLE为DDL语句,无返回结果,无需调用fetchall except sqlite3.DatabaseError as err: print("Error: ", err) else: conn.commit() print(result) conn.close()
补充说明
CREATE TABLE属于数据定义类语句,执行后没有查询结果返回,原代码中的fetchall()调用没有实际意义,可直接删除。
内容的提问来源于stack exchange,提问作者Konstantin Petrov
相关产品推荐
相关产品推荐

