mysql 事务中批量插入
时间: 2023-08-27 08:31:55 浏览: 81
在 MySQL 中,可以使用事务来确保一组 SQL 语句的原子性、一致性、隔离性和持久性。当需要批量插入数据时,可以将多个插入语句放在一个事务中,以确保所有插入都成功或全部失败。
以下是一个示例代码,用于向 MySQL 数据库中批量插入数据:
```python
import mysql.connector
# 连接数据库
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
# 创建游标
cursor = conn.cursor()
# 开始事务
conn.start_transaction()
# 批量插入数据
data = [
('John', 'Doe', 'john@example.com'),
('Jane', 'Doe', 'jane@example.com'),
('Mike', 'Smith', 'mike@example.com'),
]
sql = "INSERT INTO customers (first_name, last_name, email) VALUES (%s, %s, %s)"
cursor.executemany(sql, data)
# 提交事务
conn.commit()
# 关闭连接
cursor.close()
conn.close()
```
在上面的示例中,我们首先创建了一个数据库连接和游标。然后,使用 `conn.start_transaction()` 开始一个事务。接下来,我们定义了要插入的数据,将其存储在一个列表中,并使用 `executemany()` 方法将其批量插入到数据库中。最后,使用 `conn.commit()` 提交事务,确保所有插入操作都成功。最后,关闭游标和连接。
注意,如果在事务中出现任何错误,可以使用 `conn.rollback()` 方法回滚事务,撤销所有已经执行的操作。
阅读全文