3

我正在尝试使用执行多个将四 (4) 条记录一次插入 MySQL 数据库表,使用 MySQL 连接器驱动程序。

问题是 executemany() 始终“跳过”前 3 条记录而没有抛出错误,我不明白出了什么问题。

我正在尝试在列表中插入值:

my_records = [(334, 20533, 387.5, 'Label1'), (335, 20534, 387.5, 'Label2'), (336, 108659, 387.5, 'Label3'), (337, 108660, 387.5, 'Label4')]

然后这是我的代码:

   try:
        mydb = mysql.connector.connect(
            host=os.getenv('DBM_HOST', 'x.x.x.x'),
            user=os.getenv('DBM_USER', 'username'),
            passwd=os.getenv('DBM_PASSWORD', 'password'),
            database=os.getenv('DBM_NAME', 'my_database')
        )

        mycursor = mydb.cursor()

        sql = """
            INSERT INTO my_table (
                batch_id, user_id, assessment, label
            ) VALUES (
                %s, %s, %s, %s
            )
        """

        mycursor.executemany(sql, my_records)
        mydb.commit()
        mycursor.close()
        mydb.close()

        return True

    except Exception as exception:
        print(exception)
        return None

有谁知道发生了什么?或者为什么前 3 条记录没有插入?

这是表结构:

Field       Type                    Null    Key Default     Extra   
id          int(10) unsigned        NO      PRI             auto_increment
batch_id    int(10) unsigned        NO      MUL
user_id    int(10) unsigned        NO
assessment      decimal(10,2) unsigned  NO
label       varchar(250)            YES 
4

0 回答 0