psycopg2 executemany和execute_batch
时间: 2023-09-28 16:03:48 浏览: 43
psycopg2 的 `executemany()` 和 `execute_batch()` 都可以用来执行多个 SQL 语句。
`executemany()` 方法用于多次执行相同的 SQL 语句,每次执行时传入不同的参数。例如:
```python
import psycopg2
conn = psycopg2.connect(database="mydatabase", user="myusername", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
# 执行多次相同的 SQL 语句
cur.executemany("INSERT INTO mytable (name, value) VALUES (%s, %s)", [('foo', 1), ('bar', 2), ('baz', 3)])
conn.commit()
conn.close()
```
`execute_batch()` 方法用于一次性执行多条相似但不完全相同的 SQL 语句,每条 SQL 语句的参数可以不同。例如:
```python
import psycopg2
conn = psycopg2.connect(database="mydatabase", user="myusername", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
# 执行多条相似但不完全相同的 SQL 语句
cur.execute_batch("""
INSERT INTO mytable (name, value) VALUES (%s, %s);
INSERT INTO mytable (name, value) VALUES (%s, %s);
INSERT INTO mytable (name, value) VALUES (%s, %s);
""", [('foo', 1), ('bar', 2), ('baz', 3)])
conn.commit()
conn.close()
```
需要注意的是,`execute_batch()` 方法会将所有 SQL 语句一次性发送给数据库执行,因此在执行大量 SQL 语句时可能会导致性能问题。另外,`execute_batch()` 方法只支持 PostgreSQL 9.1 及以上版本。
相关推荐
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)