executemany()未将所有记录插入数据库

2024-09-28 17:04:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用executemany,使用MySQL连接器驱动程序,一次向MySQL数据库表插入四(4)条记录。你知道吗

问题是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 

Tags: noidosmy记录mysqlgetenvint