使用 psycopg2 插入多行

2024-04-08

根据psycopg2:用一个查询插入多行 https://stackoverflow.com/questions/8134602/psycopg2-insert-multiple-rows-with-one-query,使用 psycopg2 的效率要高得多execute http://initd.org/psycopg/docs/cursor.html#cursor.execute代替执行许多 http://initd.org/psycopg/docs/cursor.html#cursor.executemany。其他人可以确认吗?

上述 StackOverflow 问题建议使用mogrify http://initd.org/psycopg/docs/cursor.html#cursor.mogrify用于创建此类语句:

INSERT INTO table VALUES (value1, value2), (value3, value4)

是否可以使用常规生成这样的语句execute http://initd.org/psycopg/docs/cursor.html#cursor.execute功能?我想到了某种形式

cursor.execute("""INSERT INTO table VALUES (%s, %s), (%s, %s)""", ((value1,value2),(value3,value4)))

会工作。

UPDATE:

例如,我尝试传递执行sql语句:

insert into history (timestamp) values (%s),(%s); 

与以下元组:

(('2014-04-27 14:07:30.000000',), ('2014-04-27 14:07:35.000000',))

但我得到的只是错误:

没有可获取的结果


要使用执行方法,请将要插入的数据放入列表中。 psycopg2 会将列表改编为数组。然后取消数组的嵌套并根据需要转换值

import psycopg2

insert = """
    insert into history ("timestamp")
    select value
    from unnest(%s) s(value timestamp)
    returning *
;"""

data = [('2014-04-27 14:07:30.000000',), ('2014-04-27 14:07:35.000000',)]
conn = psycopg2.connect("host=localhost4 port=5432 dbname=cpn")
cursor = conn.cursor()
cursor.execute(insert, (data,))
print cursor.fetchall()
conn.commit()
conn.close()

不确定与executemany 的性能差异是否会很大。但我认为上面的更简洁。这returning顾名思义,子句将返回插入的元组。

BTW timestamp是保留字,不应用作列名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 psycopg2 插入多行 的相关文章

  • 将二维数组放入 Pandas 系列中

    我有一个 2D Numpy 数组 我想将其放入 pandas 系列 而不是 DataFrame 中 gt gt gt import pandas as pd gt gt gt import numpy as np gt gt gt a np
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 根据 Pandas 中的列表对多列进行排序

    感谢有关如何根据 pandas 中的倍数列表对给定多列进行排序的任何提示 如下所示 import pandas as pd sort a a d e sort b s1 s3 s6 sort c t1 t2 t3 df pd DataFra
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • 编辑 Jupyter Notebook 时 VS Code 中缺少“在选择中查找”

    使用 Jupyter Notebook 时 VSCode 中缺少 在选择中查找 按钮 它会减慢开发速度 所以我想请问有人知道如何激活它吗 第一张图显示了在 python 文件中的搜索 替换 第二张图显示了笔记本电脑中缺少的按钮 Python
  • CNTK 抱怨 LSTM 中的动态轴

    我正在尝试在 CNTK 中实现 LSTM 使用 Python 来对序列进行分类 Input 特征是固定长度的数字序列 时间序列 标签是 one hot 值的向量 Network input input variable input dim
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • 揭秘sharedctypes性能

    在 python 中 可以在多个进程之间共享 ctypes 对象 然而我注意到分配这些对象似乎非常昂贵 考虑以下代码 from multiprocessing import sharedctypes as sct import ctypes
  • 如何使用 Bokeh 动态隐藏字形和图例项

    我正在尝试在散景中实现复选框 其中每个复选框应显示 隐藏与其关联的行 我知道可以通过图例来实现这一点 但我希望这种效果同时在两个图中发生 此外 图例也应该更新 在下面的示例中 出现了复选框 但不执行任何操作 我显然不明白如何更新用作源的数据
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • Pandas 堆积条形图中元素的排序

    我正在尝试绘制有关某个地区 5 个地区的家庭在特定行业赚取的收入比例的信息 我使用 groupby 按地区对数据框中的信息进行排序 df df orig groupby District Portion of income value co
  • GradientTape 根据损失函数是否被 tf.function 修饰给出不同的梯度

    我发现计算的梯度取决于 tf function 装饰器的相互作用 如下所示 首先 我为二元分类创建一些合成数据 tf random set seed 42 np random seed 42 x tf random normal 2 1 y
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • bs4 `next_sibling` VS `find_next_sibling`

    我在使用时遇到困难next sibling 并且类似地与next element 如果用作属性 我不会得到任何返回 但如果用作find next sibling or find next 然后就可以了 来自doc https www cru
  • 操作错误:(sqlite3.OperationalError) SQL 变量太多,同时将 SQL 与数据帧一起使用

    我有一个熊猫数据框 如下所示 activity User Id 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED MOVIE 158d292ec18a49 2 VIEWED MOVIE 158d292ec18a4

随机推荐

  • 作为装饰器登录与依赖注入 - 如果我需要登录类内部怎么办?

    我最初问这个问题是在这条评论 https stackoverflow com questions 7905110 logging aspect oriented programming and dependency injection tr
  • Tkinter 创建带循环的选项菜单

    我创建了一个代码 使用 for 循环使用字典中的值创建 tkinter OptionMenus 该代码似乎运行成功 OptionMenus 根据需要在窗口上显示带有关键字 import tkinter as tk from tkinter
  • 从事务性平面数据库填充事实表和维度表的最佳实践

    我想在 SSIS SSAS 中填充星型模式 多维数据集 我准备了所有维度表和事实表 主键等 源是一个 平面 项目级别 表 我现在的问题是如何拆分它 并将其从一个放入相应的表中 我做了一些谷歌搜索 但找不到令人满意的解决方案 人们会认为这是
  • C: dup2、pipe 和 fork 未按预期工作

    我正在尝试做一个简单的 fork gt 执行另一个程序 gt 向该子进程说 你好 gt 读回一些内容 gt 打印收到的内容 用作子程序的程序只是等待任何输入行并将某些内容打印到标准输出 例如 你好 这是我的 主机 程序 不起作用 inclu
  • npm 对于 socket.io/installing stuff 意味着什么?

    我在这方面真是个菜鸟 我刚刚开始接触node js socket io html5 之类的东西 我终于弄清楚如何使用命令提示符 使用 Windows 通过命令 node example js 启动 hello world 应用程序 但有什么
  • django-admin.py startproject 打开记事本,而不是创建项目

    嘿 所以基本上 当我尝试 django admin py startproject mysite 时 带有 django admin py 文件的记事本会打开 而不是创建新的实际项目 我在 Windows 上 就在昨天我创建了该项目 一切都
  • 禁用页面上的所有验证控件

    在开发周期的早期阶段 如果我们只想快速地从一个表单移动到另一个表单 那么让所有验证控件强制执行其规则会有点烦人 禁用页面上所有验证器控件的最简单方法是什么 设置一个 javascript 来获取页面中的所有验证器控件 并在 for 循环中将
  • 将观察者添加到 BOOL 变量

    是否可以将观察者添加到简单变量 例如 BOOL 或 NSIntegers 并查看它们何时发生变化 Thanks 您观察键 当它们的值发生变化时会收到通知 数据类型可以是任何类型 对于定义为 Objective C 属性的任何内容 在 h 文
  • Camel如何以流模式处理json?

    为了在流模式下读取 json 并解组 Camel OOB 中有哪些可用选项 如果不是现成的 如何实施 我发现camel xstream 可能会有所帮助 流模式是默认的还是我们需要做其他事情来使其以流模式读取 还有 Jackson Strea
  • 如何在 Symfony 4 中使用事件处理异常?

    现在我正在尝试捕获这样的异常事件 try echo 1 0 catch Exception e subs new ExceptionSubscriber this gt dispatcher gt addSubscriber subs 我定
  • 是否应该始终使用 boost::ptr_vector 代替 std::vector ?

    这只是我遇到的一个概念性问题 在我当前的项目中 感觉我过度使用了 boostsmart ptr and ptr container图书馆 我正在创造boost ptr vectors在许多不同的对象中 并调用 Transfer 方法从一个对
  • AttributeError:“float”对象没有属性“lower”

    我面临这个属性错误 并且我陷入了如何处理浮点值 如果它们出现在推文中 的问题 流式推文必须小写并标记化 因此我使用了 split 函数 有人可以帮我解决这个问题 有任何解决方法或解决方案吗 这是error我正在 AttributeError
  • 如何清理redis中不活跃的玩家?

    我正在制作一个使用 redis 来存储游戏状态的游戏 它可以很好地跟踪位置和玩家 但我没有一个好的方法来清理不活跃的玩家 每当玩家移动时 这是一个半慢速移动游戏 想想每秒 1 5 帧 我就会用新位置更新哈希并删除旧位置键 跟踪活跃玩家的最佳
  • 在 Mac OS X 上使用 docx2txt 和 Git 对 Word .docx 文件进行版本控制

    On Git网站上有关于 Microsoft Word 版本控制的详细说明 doc文件与catdoc http git scm com book en Customizing Git Git Attributes http git scm
  • Android WebView LoadData - 土耳其字符

    如何在 webview 中将土耳其语字符 显示为 loadData 我的网络视图是 mWebView loadData detailsHtml text html UTF 8 thanks webView loadData htmlStr
  • 我需要进行哪些更改才能使 Magento 与 PHP 5.3 配合使用?

    我需要将我的服务器升级到 PHP 5 3 但安装了 Magento 而且我知道 Magento 不能很好地与 PHP 5 3 配合使用 我认为变化不会太大 根据我所读到的 但是 我想我应该向大众开放 有人成功做到这一点吗 如果是这样 你记好
  • 开关盒无法正常工作

    当我离开现场时 我发布了下面的代码ip空白 空并向其他字段赋值 toast总是给出消息KATimer is invalid or missing 我期望看到一个toast显示一条消息 指示空字段 但下面的代码 如果任何字段为空 它总是说KA
  • 有没有一种方法可以列出所有对象,例如使用同义词的视图?

    就像罐头上说的那样 如何确定哪些 SQL 对象正在使用给定的 SYNONYM 我想一种方法是搜索 PROC 或 VIEW 的所有内容并运行LIKE SYN NAME 但这看起来很笨拙 select from sys sql expressi
  • 如何在.NET MAUI 中创建可重用组件?

    我最近刚刚开始使用 Net MAUI 但现在我想知道如何使用一段代码 例如我的所有页面上都有一个自制的导航栏 因为在所有 10 个页面上编写相同的代码是没有意义的 我想知道是否有办法创建一个可以像 React 或 Angular 一样重用的
  • 使用 psycopg2 插入多行

    根据psycopg2 用一个查询插入多行 https stackoverflow com questions 8134602 psycopg2 insert multiple rows with one query 使用 psycopg2