在 SQL 数据库中一次输入多个列表

Entering multiple lists at once in SQLi Database

我正在使用以下命令在 SQLi 数据库中输入列表值。

    sql_comm = "INSERT INTO Revisions (Work_ID,Rev_No,Name,Date) VALUES (?,?,?,?);"
    data = (wid,i,rev_name,rev_date)
    crsr.execute(sql_comm,data)
    sql_com2 = "INSERT INTO Revisions (Field,New_Value) VALUES (?,?)"
    for elem in zip(changes,vals):
        crsr.execute(sql_com2,elem)
    connection.commit()

这是结果输出。

Work_ID Rev_No  Name                                   Date               Field      New Value                                          
172      1      Raul Gitta <raoul_g@ware.23biz> 2021-10-21T10:08:10.653Z   null       null
null    null    null    null                                      System.Rev            2
null    null    null    null                                      System.AuthorizedDate 2021-10-20T06:42:01.32Z
null    null    null    null                                      System.RevisedDate    2021-10-21T10:08:10.653Z
null    null    null    null                                      System.ChangedDate    2021-10-20T06:42:01.32Z
null    null    null    null                                      System.Watermark      198

有没有办法避免这些 null 值?

所有空值都源于它们没有插入到适当的 INSERT 查询中这一事实。使用列表而不是元组作为参数可能更容易,因为列表是可变的。

类似于:

data = [wid,i,rev_name,rev_date]
sql_com2 = "INSERT INTO Revisions (Work_ID,Rev_No,Name,Date,Field,New_Value) 
VALUES (?,?,?,?,?,?)"
for elem in zip(changes,vals):
    crsr.execute(sql_com2,data + list(elem))
 connection.commit()