sqlalchemy使用on_duplicate_key_update在尝试插入重复键的数据时更新记录

sqlalchemy使用on_duplicate_key_update在尝试插入重复键的数据时更新记录

SQLAlchemy中,在尝试插入重复键的数据时更新记录,可以使用on_duplicate_key_update方法。这个方法是在SQLAlchemy 1.4版本中引入的,它允许你定义在发生键重复时,哪些列应该被更新。

以下是一个使用on_duplicate_key_update的例子:

from sqlalchemy import create_engine, Table, MetaData, Column, Integer, String
from sqlalchemy.dialects.mysql import insert# 假设我们有一个名为 'users' 的表,它有两列:'id' 和 'name'
engine = create_engine('mysql+pymysql://user:password@localhost/dbname')
metadata = MetaData()
users = Table('users', metadata,Column('id', Integer, primary_key=True),Column('name', String(50)))# 创建一个插入请求
stmt = insert(users).values(id=1, name='John Doe')# 如果 'id' 已存在,则更新 'name' 列
stmt = stmt.on_duplicate_key_update(name='John Doe')with engine.connect() as connection:connection.execute(stmt)

在这个例子中,如果users表中已经有一个id值为1的记录,尝试插入新的记录时会导致键重复错误。使用on_duplicate_key_update方法后,如果发生键重复,则只会更新name列为'John Doe'

数据模型类使用on_duplicate_key_update

stmt = Insert(数据模型类).values(newData).on_duplicate_key_update(字段名称=newData[0].get("xxx"),updateDt=datetime.datetime.now())
with engine.connect() as connection:connection.execute(stmt)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

慢阻肺患者为何容易营养不良?朗格力教你轻松改善

#肺科营养#朗格力#班古营养#复合营养素#肺部营养#肺部健康# 慢阻肺是我国常见的、高患病率的慢性呼吸系统疾病,会对肺结构和功能产生影响,从而引起各种不良反应,其中营养不良是常见并发症之一。慢阻肺为什么会发生营养不良?营养不良又是怎么伤害慢阻肺的呢?为什么像班古精准…

安卓逆向案例——XX电影网

安卓app逆向——XX电影网 请求数据 GET /user/qk_login?requestyiSK6f7UI8TdTk5tmbx6sl3qCEL8Mn38S6h9c%2BeVxcs%3D HTTP/1.1 pid: 236 ver: 100/152/2016020901 Did: b70efb1db740444f osv: 33 devicemodel: Xiaomi/Mi 10 osvr: 13 key: 88b517dde01a39730e28f8de8678fb6d …

鸿蒙开发:【进程模型概述】

进程模型概述 系统的进程模型如下图所示: 应用中(同一包名)的所有PageAbility、ServiceAbility、DataAbility、FormAbility运行在同一个独立进程中,即图中绿色部分的“Main Process”。 WebView拥有独立的渲染进程,即…

什么是光子带隙光纤?

长期以来,光纤通信的发展受到纤芯材料特性的限制,特别是损耗特性。二氧化硅在可见光至近红外波长范围内损耗低,与激光器工作波长相匹配,因此成为长途电信应用中光纤纤芯的首选材料。 这类光纤的纤芯是实心的,传输原理是基于全内反射(Total Internal Reflection, TIR),其…

ServBay 下一代Web开发环境

ServBay是一个集成式、图形化的本地化Web开发环境。开发者通过ServBay几分钟就能部署一个本地化的开发环境。解决了Web开发者(比如PHP、Nodejs)、测试工程师、小型团队安装和维护开发测试环境的问题,同时可以快速的进行环境的升级以及维护。S…

Docker:认识Docker Host/Container/none网络

文章目录 Docker Host网络认识Docker Host网络实际操作网络模式区别使用场景 Docker Container网络认识Docker Container网络操作实例使用场景 Docker None网络使用场景 Docker Host网络 认识Docker Host网络 Docker容器运行默认会分配独立的Network Namespace隔离子系统&…

在公司的一些笔记

6.19 记住挂载在windows上的账户是DAHUATECH\401593,不是401593Windows与linux不能同时挂载在虚拟盘上 6.21 /******************************************************************************* pdc_ledSy7806e.c* * Description: 提供I2C访问sy7806e。 * * …

不破不立,B站终于跳出“舒适圈”?

哔哩哔哩已经很久没有这么振奋人心的时刻了。 6月19日,哔哩哔哩当日股价涨超18%,最高达到145.6元每股,时隔11个月,再次回归高位。从时间线上看,这次的股价大涨明显与哔哩哔哩刚(以下简称“B站”&#xff0…

基于单电阻采样的电流重构

1. 单电阻采样电流重构原理 图1(a)所示是电压型三相逆变器,定义三相开 关信号为 Sa 、Sb 、Sc 。当 Sa = 1 表示A相上桥臂导 通,下桥臂关断;Sa = 0 表示相反。三相逆变器采用 SVPWM调制方式控制,有8种开关工作状态,包括 6个非零电压矢量V1 ~ V6 和2个零电压矢量V0 、V7…

使用Lua脚本保证原子性的Redis分布式锁实现

这是原来的代码: Override public void unlock() {// 获取线程标示String threadId ID_PREFIX Thread.currentThread().getId();// 判断标示是否一致String id stringRedisTemplate.opsForValue().get(KEY_PREFIX name);if (threadId.equals(id)) {// 释放锁st…

约束求解器方案设计

1.约束求解介绍 给定一个几何对象(点、直线段、圆、圆弧、平面等)的集合G和一个关于集合G中几何对象之间约束(点的位置、直线段的长度、圆弧对应的圆心角角度、垂直、相切等) 的集合C,则在二元组(G,C)中根…

入门Ansible常用模块

自动化运维Devops-Ansible Ansible是新出现的自动化运维工具,基于Python 开发,集合了众多运维工具(puppet 、cfengine、chef、func、fabric)的优点,实现了批量系统配置 、批量程序部署、批量运行命令 等功能。Ansible…

Mongodb UPDATE使用$slice限制更新后数组长度

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第73篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

【如何让新增的Android.mk参与编译】

步骤1: 你需要在你新增的Android.mk目录以上的位置找一个已有的Android.mk 步骤2: 在原本已有的Android.mk中加入: //这是你新增的Android.mk文件的路径 include $(LOCAL_PATH)/xxx/xxx/Android.mk如果有些多可以这样写 //dir1 dir2是你新…

58-DOS与DDOS分析(正常TCP会话与SYN Flood攻击、ICMP Flood 攻击、SNMP放大攻击等)

目录 正常 TCP 会话与 SYN Flood 攻击 1、正常的三次握手过程: 2、 SYN Flood 攻击 一、攻击windows系统: 二、攻击web网站 : 拒绝服务攻击工具-Hping3-Syn Flood 攻击 拒绝服务攻击工具--Hping3--ICMP Flood 攻击 sockstress攻击 So…

不在枯燥用第三方库简化你的编程之路

简介: Python作为一种多用途的编程语言,得益于其丰富的第三方库和框架,极大地拓展了其功能和应用领域.这些工具不仅提升了开发效率,也使得Python在各个领域展现出色的表现. 今天我们就来聊一聊Python 第三方库是由第三方开发者编写并共享的库,可用于扩展 Python 的…

Unity【入门】光源、物理、音效系统

核心系统 文章目录 核心系统1、光源系统基础1、光源组件2、光面板相关 2、物理系统之碰撞检测1、刚体 RigidBody2、碰撞器 Collider3、物理材质4、碰撞检测函数5、刚体加力 3、音效系统1、音频文件导入2、音频源和音频监听器脚本3、代码控制音频源4、麦克风输入相关 1、光源系统…

智慧办公新篇章:可视化技术引领园区管理革命

随着科技的飞速发展,办公方式也在经历着前所未有的变革。在这个信息爆炸的时代,如何高效、智能地管理办公空间,成为了每个企业和园区管理者面临的重要课题。 智慧办公园区作为未来办公的新趋势,以其高效、便捷、智能的特点&#x…

Redis 7.x 系列【2】单机部署

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. Windows2. Linux 1. Windows Redis作为一个高性能的内存数据库,和Linu…

数据结构6---树

一、定义 树(Tree)是n(n>0)个结点的有限集。当n0时成为空树,在任意一棵非空树中: 1、有且仅有一个特定的称为根(Root)的结点; 2、当n>1时,其余结点可分为m(m>日)个互不相交的有限集T1、T2、...、 Tm,其中每一个集合本身又是一棵树,并且称为根的…