游标方法执行操作错误

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

我正在尝试在 python 中的 sqlite3 中创建数据库,但运行该函数后它显示此错误消息:

cursor.execute(sql) sqlite3.OperationalError:靠近“(”:语法错误

问题显然出在名为“执行”的游标的方法中,因为调试部分表明该行中存在操作错误,但不清楚原因,因为它是按预期编码的。但是,该表已创建,但正如此错误所示,它阻止了我的程序。问题不在于查询的语法,因为我尝试更改列名称和变量类型的位置。

请帮我找出问题所在。

   import sqlite3

      def table_personal_data():  
         conn = sqlite3.connect('mailroom.db')
         cursor = conn.cursor()
         sql='''CREATE TABLE IF NOT EXISTS DONORS(
             ID PRIMARY KEY (NAME,NAME),
             NAME VARCHAR(40) NOT NULL,
             LASTNAME VARCHAR(40) NOT NULL,
             EMAIL VARCHAR(50) NOT NULL,
             DRIVER_LICENSE VARCHAR(50) NOT NULL)''' 
        cursor.execute(sql)
        conn.commit()
        cursor.close()
        conn.close()

table_personal_data()

我尝试更改查询部分中的sqlite3代码,但这不是问题。

python sqlite cursor execute operationalerror
1个回答
1
投票

这是你的查询语法错误,检查一下 enter image description here

这是正确的语法

sql = '''CREATE TABLE IF NOT EXISTS DONORS(
 ID PRIMARY KEY,
 NAME VARCHAR(40) NOT NULL,
 LASTNAME VARCHAR(40) NOT NULL,
 EMAIL VARCHAR(50) NOT NULL,
 DRIVER_LICENSE VARCHAR(50) NOT NULL)'''
© www.soinside.com 2019 - 2024. All rights reserved.