如果没有“sqlite3.OperationalError:”,则无法将记录添加到数据库靠近“(“:语法错误

iyzzxitl  于 2022-12-04  发布在  SQLite
关注(0)|答案(1)|浏览(172)

我为我的程序做了一个“虚拟”版本,只包含前四个字段,但是一旦我添加了其余的字段,这个错误就不断出现。我看到的其他任何人出现这个问题都是由于其他一些不适用于我的问题。我觉得这是我遗漏的一些小问题,如果有人能帮助我解决这个问题,那将是一个很大的帮助。谢谢。2我希望这段代码已经足够了。3即使有人告诉我问题出在这段代码之外,也会有很大的帮助。

connection = sqlite3.connect("TempDatabase.db")
        cursor = connection.cursor()

        sqlCommand = """
           CREATE TABLE IF NOT EXISTS OrderTb1N1
           (
           OrderID INTEGER NOT NULL,
           dateOrdered DATE,
           customerFirstname TEXT,
           customerSurname TEXT,
           customerPhoneNumber TEXT,
           collectionDate DATE,
           flavours TEXT,
           glaze TEXT,
           toppings TEXT,
           personalisation TEXT,
           orderSize TEXT,
           price REAL,
           paymentStatus TEXT,
           employeeName TEXT

           primary key (OrderID)
           )
        """

        cursor.execute(sqlCommand)
        connection.commit()
        connection.close()

由于数据库已经存在,我打算在这段代码中添加额外的字段(来自“dummy”测试),并允许我输入新的记录。我已经删除了在dummy测试期间生成的所有记录。根据错误输出,错误在“sqlCommand=”中的某个地方。

flmtquvp

flmtquvp1#

您应该需要在employeeNameTEXT之后使用逗号(,)。
正确代码-

connection = sqlite3.connect("TempDatabase.db")
        cursor = connection.cursor()

        sqlCommand = "
           CREATE TABLE IF NOT EXISTS OrderTb1N1
           (
           OrderID INTEGER NOT NULL,
           dateOrdered DATE,
           customerFirstname TEXT,
           customerSurname TEXT,
           customerPhoneNumber TEXT,
           collectionDate DATE,
           flavours TEXT,
           glaze TEXT,
           toppings TEXT,
           personalisation TEXT,
           orderSize TEXT,
           price REAL,
           paymentStatus TEXT,
           employeeName TEXT,
           primary key (OrderID)
           )
        "

        cursor.execute(sqlCommand)
        connection.commit()
        connection.close()

相关问题