python获取MySQL自增ID序列
数据库insert操作时,某个字段是自增序列如ID,但是想获取这个ID的值是多少,后者把这ID的值作为后续其他sql的参数,那要怎么做呢,其实很简单,可用last_insert_id
要获取MySQL自增ID序列,可用通过last_insert_id
当执行insert的时候,先不要commit,通过SELECT LAST_INSERT_ID();获取到自增序列后,再commit,否则获取到的是0
# -*- coding: utf-8 -*-import xlrd
db_info = {'host':'', 'port':8899, 'user':'ducc', 'passwd':'', 'db':'', 'charset':'utf8'}#连接数据库
import pymysql
import sys
import traceback# 插入dcf_services
inser_dcf_services = "INSERT INTO `dcf_services` ( `PARENT_SERVICES_ID`, `SERVICES_NAME`, `SERVICES_CODE`, `SERVICES_TYPE`, `CONCURRENT_NUM`, `PACKAGE_ID`, `START_PARAM`, `PROGRAM_NAME`, `SERVICES_TYPE_ID`, `BUS_CLUSTER_ID`, `EXT_CLUSTER_ID`, `DEPENDENT_SERVICES_ID`, `NAMESPACE`, `START_SCRIPT`, `UPGRADE_TYPE`, `CLUSTER_ELE_RUN_JSTORM`, `WORKER_NUM`, `CROSS_HOST`, `DOWN_SERVICE`, `SOCKET_PROT`, `LATN_ID`) VALUES ( '0', %s, %s, '2', '1', '1', %s, %s, '1', 'F9257CBC99B84C9D84DDC2E6837736CD', 'FFE51021A941411A912B3EB47D3F992E', '-1', '', 'start_app.sh', '', '0', NULL, NULL, NULL, NULL, NULL);"
inser_dcf_host = "INSERT INTO `dcf_services_host_cfgfile` ( `SERVICES_ID`, `EXT_FIELD`, `SERVICE_TYPE`, `EXT_FIELD1`) VALUES ( %s, %s, '2', '1');"#获取excle数据11.xls
hostIds = []
def getfiledata(file):workbook = xlrd.open_workbook(filename=file) # filename是文件的路径名称table = workbook.sheets()[0] # 获取第一个sheet表格datas = []for r in range(1, table.nrows): # nrows行,开始读每行的数据,cell获取每个单元格PROGRAM_NAME = table.cell(r, 0).value # 用户昵称SERVICES_CODE = table.cell(r, 1).value # 订单状态SERVICES_NAME = table.cell(r, 2).value # 支付金额START_PARAM = table.cell(r, 3).value # 购买数量HOST_ID = table.cell(r, 4).value # 省份data = (SERVICES_NAME,SERVICES_CODE,START_PARAM,PROGRAM_NAME) #把每一行的数据添加为一个元组datas.append(data) #把每一组添加到列表print(datas)hostIds.append(HOST_ID)# print(hostIds)insert_id_infos = []
def inser_dcfServices(datas):try:bill_conn = pymysql.Connect(**db_info)cursor = bill_conn.cursor()for da in datas:print(da)cursor.execute(inser_dcf_services,da)cursor.execute("select last_insert_id();") #查询自增序列SERVICES_ID的值insert_id_info = cursor.fetchall() #获取自增序列SERVICES_ID的值,获取 ID 必须在 commit 之前,否则获取为 0insert_id_infos.append(insert_id_info[0][0])# print(insert_id_infos)bill_conn.commit()bill_conn.close()except Exception():print(traceback.format_exc())if __name__ == '__main__':try:file = sys.argv[1]getfiledata(file)except:print('usage: python dcf_services.py [file]')print('example: python dcf_services.py dcf_task_program.xls')
python获取MySQL自增ID序列相关推荐
- 获取mysql 自增id 和mysql 下一个自增id的方法
mysql获取表中自增id的方法: 1. 使用 select MAX(id) from tablename; 获取的是表中最大的id:顺序执行 insert ---> delete 插入的数据 ...
- php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法
今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...
- mybatis获取mysql自增主键_Mybatis获取数据库自增主键
一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...
- mysql自增id存在哪里_mysql返回自增id
在mysql操作中执行insert,是没有自增id返回的,这就对于后续编写逻辑造成了很大不便. 其实有几种方法可以做到insert后直接获取到自增id. 1.执行select max(id); 原理是 ...
- 技术分享 | 关于 MySQL 自增 ID 的事儿
作者:贲绍华 爱可生研发中心工程师,负责项目的需求与维护工作.其他身份:柯基铲屎官. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 当我们使用 M ...
- mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......
原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...
- Mysql 自增id、uuid与雪花id
概念介绍 三种主键 自增id :1 2 3 4 5-- uuid :UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生 ...
- 45 MySQL自增id
45 MySQL自增id 表定义自增id 说到自增id,前面提到mysql的自增id不连续,当表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变 create table t(id ...
- mysql自动增长id 溢出_MySQL表自增id溢出的故障复盘怎么解决 MySQL表自增id溢出的故障复盘解决方法...
MySQL表自增id溢出的故障复盘如何解决?本篇文章小编给大家分享一下MySQL表自增id溢出的故障复盘解决方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 问题:MyS ...
最新文章
- std string与线程安全_详解linux系统中断线程的那些事
- python 模块与包
- 【转】 使用 AppFuse 快速构建 J2EE 应用
- ICML论文录取难度逐年上升,New In ML为你特设“名师辅导班”
- 将网站SSL Server Certificate导入ABAP系统,证书Subject中文字符被转义引起的问题
- 3-3:常见任务和主要工具之网络
- [Effective C++ --032]确定你的public继承塑模出is-a
- 数据结构基础学习(一)数组
- Ubuntu的 g++ gcc版本升降级
- redis增加auth
- 项目管理(二)责任划分
- 导航猫连接Oracle
- Beginning Python: chapter 1 Instant Hacking The Basics: Modules, cmath, turtle
- 金蝶KIS旗舰版7.03 KIS旗舰版7.01 金蝶KIS专业版16.04 KIS专业版16.01 KIS商贸版9.04 KIS商贸版9.01 金蝶K3 15.1 云星空Cloud7.6企业版标准版
- 算法图解(递归调用栈)
- 反编译so库破解so
- 包装exp是什么意思_药瓶说明中EXP是什么意思?
- 开源免费 低代码平台开源_行动透明:免费代码营现已开源
- 计算机建模与仿真心得,计算机建模与仿真.docx
- scanf函数解析,附带rewind函数(清空缓存)
热门文章
- fedora-MEPG
- VB中 On error 的用法
- [思维模式-14]:《复盘》-2- “知”篇 - 复盘之道
- 浏览器报错Not allowed to load local resource:的解决办法,与网上大多数都不同,亲测有用!
- 阿里 mysql默认的隔离级别_mysql的默认隔离级别
- Leetcode 763. Partition Labels
- Android 全局大喇叭——详解广播机制
- 三星对Android的支持,三星应对Android设备开放Gear手表兼容性
- uitraiso使用方式
- iOS 自定义进度条