psycopg2:使用一个查询插入多行

我需要在一个查询中插入多行(行数不是常数),因此我需要执行如下查询:

插入t(a,b)值(1,2)、(3,4)、(5,6);

我知道的唯一方法是

args=[(1,2)、(3,4)、(5,6)]
args_str=',join(args中x的cursor.mogrify(“%s”,(x,))
cursor.execute(“插入t(a,b)值”+args_str)

但是我想要一些更简单的方法

我建立了一个程序,可以在另一个城市的服务器上插入多行代码

我发现使用这种方法比executemany快10倍左右。在我的例子中,tup是一个包含大约2000行的元组。使用此方法大约需要10秒:

args_str=','。连接(当前mogrify((%s,%s,%s,%s,%s,%s)”,x)表示tup中的x)
当前执行(“插入表值”+args\u str)

使用此方法时,需要2分钟:

当前执行方式(“插入表值(%s,%s,%s,%s,%s,%s,%s)”,tup)

发表评论