psycopg2 executemany和execute_batch
时间: 2023-09-28 17:03:48 浏览: 45
psycopg2是一个Python库,用于连接和操作PostgreSQL数据库。它提供了多种方法来执行SQL查询,其中包括executemany和execute_batch。
executemany方法用于执行多个相同的SQL查询,但每个查询使用不同的参数。它接受两个参数:SQL查询和参数列表。例如,如果要将多个行插入表中,则可以使用executemany方法执行INSERT查询。以下是一个使用executemany方法的示例:
```
import psycopg2
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
data = [(1, 'John'), (2, 'Jane'), (3, 'Bob')]
cur.executemany('INSERT INTO mytable(id, name) VALUES (%s, %s)', data)
conn.commit()
cur.close()
conn.close()
```
execute_batch方法与executemany方法类似,但它可以执行多个不同的SQL查询,每个查询使用不同的参数。它接受两个参数:SQL查询和参数列表列表。以下是一个使用execute_batch方法的示例:
```
import psycopg2
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
data = [
('INSERT INTO mytable(id, name) VALUES (%s, %s)', (1, 'John')),
('INSERT INTO mytable(id, name) VALUES (%s, %s)', (2, 'Jane')),
('INSERT INTO mytable(id, name) VALUES (%s, %s)', (3, 'Bob'))
]
cur.execute_batch(data)
conn.commit()
cur.close()
conn.close()
```
需要注意的是,execute_batch方法只在psycopg2版本2.7.4及以上可用。