Python SQLite一次只能执行一条语句[duplicate]

kqlmhetl  于 2023-02-13  发布在  SQLite
关注(0)|答案(1)|浏览(435)
    • 此问题在此处已有答案**:

sqlite3.Warning: You can only execute one statement at a time(5个答案)
3天前关闭。
运行此代码时出现错误

import sqlite3
conn = sqlite3.connect("Sqlite3 file path")
cursor = conn.cursor()

Name = "Test"
LastName = "Test"
Id = 2
Grade = 12

cursor.execute("""
    BEGIN TRANSACTION;

    INSERT INTO Students (FirstName,LastName) VALUES(?,?);
    
    INSERT INTO StudentsYears (StudentId,YearId,Grade) VALUES((SELECT LAST_INSERT_ROWID() from Students),?,?);
    
    END TRANSACTION;""" , (Name , LastName , Id , Grade))

conn.commit()

有什么问题?..............................

ozxc1zmp

ozxc1zmp1#

您的问题是使用错误的命令一次执行多个SQL语句。根据docsexecute()“将只执行单个SQL语句。如果您尝试使用它执行多个语句,它将引发ProgrammingError。如果您希望使用一个调用执行多个SQL语句,请使用executescript()。“
若要修复您的问题,请将代码更改为

cursor.executescript("""
    STATEMENTS
    ...
    """

相关问题