首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3 操作 MySQL 插入一条数据返回主键 id的实例

Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入数据 #!...id print(cursor.lastrowid) # 最新插入行的主键id print(conn.insert_id()) conn.commit() 使用 cursor.lastrowid...如果想要其他的进程也能看到数据,就需要使用 conn.commit() 提交,这样就保证了多进程同时操作数据库而不会冲突 但是多线程并发插入的时候就不行了,因为多线程是共享数据的,而且在 Python...中并没有所谓的真正多线程,建议使用多进程 补充拓展:mysql中插入一条数据后得到插入后的主键id值 ** 当我们涉及多表进行插入操作是,常常需要在程序中等到刚刚插入数据的主键Id, 便与进行多表关联...="id" SELECT LAST_INSERT_ID() AS id </selectKey 以上这篇Python3 操作 MySQL 插入一条数据返回主键 id的实例就是小编分享给大家的全部内容了

2.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Mybatis使用generatedKey在插入数据返回自增id始终为1,自增id实际返回到原对象当中的问题排查

今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回数据对应的自增主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)时,返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表  generator的配置文件 <?...null : sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应的变量对应的值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中

1.5K10

插入&特殊字符的几种思考

一位铁杆朋友,今天问了个问题,写了一个Python程序,从文件读取数据,其中可能包含“&”这种特殊字符,为了让其能插入Oracle,需要做什么处理?...首先,我想问的问题,"&"字符在插入数据库的时候有什么特别之处?...在sqlplus下执行如下SQL,向表A插入记录“a&a”,他会提示我们“Enter value for a:”,输入变量a的值,此处输入空,则实际存储的,就是"a", SQL> create table...但是在python程序中,使用cx_Oracle连接Oracle数据库,并不支持执行set define off,原因就是cx_Oracle只支持标准SQL语句,这个set define off只是在sqlplus...,是无需关注原始字符串中,到底存在几个连续的"&",要特殊的判断,另一方面,插入的时候,replace函数能通用,无需针对不同的输入选择特殊的逻辑,一个词概括,就是“通用”。

2.2K10

使用cx_Oracle库来读取Redo log文件

Redo log文件记录了对数据库进行的所有变更操作,包括插入、更新和删除等操作。...日志头包含了Redo log文件的基本信息,如文件大小、日志序列号、线程ID、块号、块大小和时间戳等。每个日志记录包含了一个事务操作的详细信息,如事务ID、表空间ID、操作类型和受影响的数据等。...下面是一个简单的Python示例代码,使用cx_Oracle库来读取Redo log文件的基本信息: import cx_Oracle def analyze_redo_log(redo_log_file...cx_Oracle库连接到数据执行SQL查询,获取Redo log文件的基本信息。...你需要根据你的实际数据库配置,替换代码中的用户名、密码和数据库名称。请确保已安装正确配置了cx_Oracle库。

20920

基于pycharm的python开发配置

python提供了cx_Oracle模块,可以通过导入该模块,使得python程序可以连接数据库,数据库中的数据进行操作。...语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数 executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数...#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入数据是什么类型,占位符永远都要用%s     sql="insert into cdinfo values(%s,%s,%s,...#因为是tuple,所以可以这样使用结果集     print cds[0][3]     #或者直接显示出来,看看结果集的真实样子     print cds     #如果需要批量的插入数据,就这样做...executemany方法来批量的插入数据.这真是一个很酷的方法!

93011

使用Python操作MySQL和Oracle数据

Python操作数据库一般使用两种方法,前面使用SQLite时便调用了数据库连接接口,这里也可以使用数据库接口pymysql和cx_Oracle来对数据库操作,但是学习是不断积累的过程,前面已经介绍过类似的方案...插入数据 ? 当建立好表关系后,需要将数据插入到表中,对其进行相关的操作前,需要创建一个会话对象用于执行SQL语句,所用代码如下。 ?...创建数据库表插入数据 db = cx_Oracle.connect('scott/scott@localhost:1521/orcl') cur = db.cursor() cur.execute (...删除数据查询 删除数据也很简单,连接数据库打开游标,执行SQL提交,关闭游标,关闭数据库,具体代码如下。...MySQL使用pymysql包,Oracle使用cx_Oracle包都能够很好的操作数据库,但要是使用了SQLAlchemy的ORM框架来操作数据库,感觉会遇到无数坑等你跳,还是得认真学习ORM框架,加油

2.8K10

使用 cx_Oracle 在 Oracle 中等待记录执行操作

问题背景:在第一个 Python 项目中,需要等待记录插入 Oracle 表中,一旦记录存在,就调用 Python 函数。目前使用 cx_Oracle 库,采用一种无限循环的方式来查询表。...如果记录存在,就调用函数,然后等待 5 秒后重新开始循环。但这种方式效率不高,等待时间太长,并且系统看起来很慢。如果不想要每秒都向数据库发送查询,是否有其他方法来等待记录执行操作?解决方案:1....使用触发器:触发器是一种在数据库中自动执行操作的机制。可以使用触发器来在记录插入到表时调用 Python 函数。...使用消息队列:消息队列是一种在应用程序之间传递消息的机制。可以使用消息队列来实现等待记录执行操作的功能。需要创建消息队列并将其配置为在记录插入到表时发送消息。...然后,可以使用消息队列侦听器来接收消息调用 Python 函数

9210

手把手教你搭建一个 Python 连接数据库,快速取数工具

基于底层数据来开发不难,无非是将用户输入变量作为筛选条件,将参数映射到 sql 语句,生成一个 sql 语句然后再去数据库执行 最后再利用 QT 开发一个 GUI 界面,用户界面的点击和筛选条件,信号触发对应按钮与绑定的传参槽函数执行...2)sql 语句集合模块,将待执行的业务 sql 语句统一存放到这里 3)数据处理函数工厂 4)使用多线程提取数据 一、数据库连接类 cx_Oracle 是一个 Python 扩展模块,相当于 python...型数据,与pd.to_datetime函数功能类似。...、UPDATE操作没有返回值(但是会在数据库中执行),程序会抛出SourceCodeCloseError,终止程序。...cx_Oracle 是一个 Python 扩展模块,相当于 python 的 Oracle 数据库的驱动,通过使用所有数据库访问模块通用的数据库 API 来实现 Oracle 数据库的查询和更新。

1.4K30

手把手教你搭建一个Python连接数据库快速取数工具

基于底层数据来开发不难,无非是将用户输入变量作为筛选条件,将参数映射到sql语句,生成一个sql语句然后再去数据库执行。...最后再利用QT开发一个GUI界面,用户界面的点击和筛选条件,信号触发对应按钮与绑定的传参槽函数执行。...4)、使用多线程提取数据 一、数据库连接类 cx_Oracle是一个Python 扩展模块,相当于python的Oracle数据库的驱动,通过使用所有数据库访问模块通用的数据库 API来实现Oracle...、UPDATE操作没有返回值(但是会在数据库中执行),程序会抛出SourceCodeCloseError,终止程序。...cx_Oracle是一个Python 扩展模块,相当于python的Oracle数据库的驱动,通过使用所有数据库访问模块通用的数据库 API来实现Oracle 数据库的查询和更新。

1.1K10

利用Python连接Oracle数据库的基本操作指南

在连接数据库之间,应下载相应的工具包cx_Oracle,在你安装的python文件夹中找到script,在路径栏点击输入cmd回车进入命令行输入 pip install cx_Oracle 进行安装,...1.引入该工具包,使用import关键词,输入 import cx_Oracle 引入该工具包,运行看是否加载成功(结果区为>>空行),无其他内容),则表示加载成功; 2.建立与数据库的连接,创建一个数据库对象...插入多条数据值时常用,每行的数据值应封装在一个元组内,再使用列表进行封装。...如: 变量名 = 游标对象名.execute(sql) 变量名.fetchall() 10.当SQL语句为查询语句或者插入数据语句时,通过数据库对象引用commit()方法提交更新数据。...如: 数据库对象名.close() 小结,这些是连接使用数据库的最基本内容,当某条语句进行的多的时候,可以使用类进行封装,当使用时直接引入类,调用类中的函数块操作即可。

3K10

windows10,redhat6.5下python3.5.2使用cx_Oracle链接oracle

0.序言 项目主要使用oracle但是我不太喜欢其他编程语言,加上可能需要用python部署算法包,从oracle表中读出数据,处理完成后在放回oracle中去,所以在windows上就想到先用python...在安装好cx_oracle使用cx_Oracle.clientversion()查看为(11, 2, 0, 4, 0) 1.2 cx_oracle版本 cx_oracle和python版本需要对应...Oracle数据库。...: 在这里需要说明下,你使用哪个帐户装cx_Oracle就需要配置哪个帐户的环境变量,以下已root帐户为例; 如果不配置环境变量、或环境变量配置不正确,在安装cx_Oracle时,会报各种错误...tid=12 3. cx_Oracle使用简介 使用流程: 1.导入模块cx_Oracle 2.连接数据库 3.获取cursor 4.使用cursor进行各种操作 5.关闭cursor

84130

使用python查询Oracle数据

需要使用的库:cx_Oracle 使用pip安装即可 pip install cx_Oracle 完成了cx_Oracle的安装之后,几乎就可以按照连接MySQL的思路操作Oracle。...res即返回的一个结果是list,列表,列表的每个元素是元组,里面记录查询到的每一行数据。...关于使用python操作各大数据库的思路都很简单明了,各连接数据库的第三方库主要内容就是实现了与各数据库服务器之间的通讯。...我们需要的是把sql语句完整地发送到服务器,服务器之后把查询到的数据返回到本地,然后我们直接使用拿到的数据。 无论是python连接MySQL,还是python连接Oracle,本质上都是一样的。...我们需要的是一个可以和数据库服务器对话的工具,其他部分当作正常的数据操作即可。 比如上面的四行代码,可以完成所有对数据库的操作,而不使用其他的库函数

1.8K20

Python实现与Oracle数据库交互

前言 近期有一个项目需要用Python和Oracle数据库进行交互,所以有机会研究了一下oracle数据库,趁着知识在脑海中还热乎之际,用烂笔头记录一下最近这几天的研究成果。...用户) 第二步安装pip(安装使用root用户) 离线安装cx_Oracle 从该地址https://pypi.org/project/cx-Oracle/#files下载Python对应版本的whl文件...,我的Python版本2.7,所以下载这个文件 安装 至此,我们的cx_Oracle模块已经安装完毕 cx_Oracle的简单使用 demo.py import cx_Oracle user = '...Python位数一致,比如,Oracle 64位,则Python也是 64位 本地环境变量NLS_LANG需要与数据库编码一致,不然会出现乱码情况 Python创建一个与Oracle数据库的连接时,需要指定...encoding和nencoding两个参数,这样才能正常显示数据 附录,简单记录一下Oracle数据库操作的一些语句 创建用户 create user sas(用户名) identified by password

82710

python连接数据库oracle_python 连接oracle数据库:cx_Oracle

参考链接: Python中的Oracle数据库连接 注意:64位操作系统必须安装64位oracle客户端,否则会连接报错  安装第三方库:cx_Oracle  一、连接数据库的三种方式:  1、cx_Oracle.connect...cx_Oracle as oracle  conn=oracle.connect("interconn/ios@192.168.81.186:1521/utf8186")     #('账号/密码@ip...:端口/数据库实例名')  cursor=conn.cursor()      #使用cursor()方法获取数据库的操作游标(游标是记录操作哪个库、表、字段、时间等信息)  try:  cursor.execute...("select * from mp_log_load")      #SelectSql可以是其他数据库操作变量,执行sql语句,返回的是影响行数  OneData=cursor.fetchone()...        #一条查询结果,返回类型为tuple  AllData=cursor.fetchall()        #所有查询结果,返回类型为tuple:((login_name1,passwd1

2.1K20
领券