数据库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序列相关推荐

  1. 获取mysql 自增id 和mysql 下一个自增id的方法

    mysql获取表中自增id的方法: 1. 使用 select MAX(id) from tablename; 获取的是表中最大的id:顺序执行  insert ---> delete 插入的数据 ...

  2. php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  3. mybatis获取mysql自增主键_Mybatis获取数据库自增主键

    一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...

  4. mysql自增id存在哪里_mysql返回自增id

    在mysql操作中执行insert,是没有自增id返回的,这就对于后续编写逻辑造成了很大不便. 其实有几种方法可以做到insert后直接获取到自增id. 1.执行select max(id); 原理是 ...

  5. 技术分享 | 关于 MySQL 自增 ID 的事儿

    作者:贲绍华 爱可生研发中心工程师,负责项目的需求与维护工作.其他身份:柯基铲屎官. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 当我们使用 M ...

  6. mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......

    原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...

  7. Mysql 自增id、uuid与雪花id

    概念介绍 三种主键 自增id :1 2 3 4 5-- uuid :UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生 ...

  8. 45 MySQL自增id

    45 MySQL自增id 表定义自增id 说到自增id,前面提到mysql的自增id不连续,当表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变 create table t(id ...

  9. mysql自动增长id 溢出_MySQL表自增id溢出的故障复盘怎么解决 MySQL表自增id溢出的故障复盘解决方法...

    MySQL表自增id溢出的故障复盘如何解决?本篇文章小编给大家分享一下MySQL表自增id溢出的故障复盘解决方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 问题:MyS ...

最新文章

  1. heritrix 3.2.0 -- 环境搭建
  2. Redis 的性能幻想与残酷现实(转)
  3. 盘点那些你可能错过的CNCF优秀开源项目
  4. 平均年薪60.8万,腾讯阿里最近都在抢这类人才!
  5. linux下执行scrapy的爬虫定时任务
  6. 加一度分享5大竞价经验,让流量更大更精准
  7. 奇安信代码卫士报送的漏洞获评“CNVD平台2019年度最具价值漏洞”
  8. Asp.net MVC Pager分页实现
  9. educoder MongoDB 文档的高级查询操作
  10. 3.9上午(周彤彤)
  11. python 正则表达式1
  12. 解决台式机外放和插耳机都没声音[基础版]
  13. 基于有限元法的转子动力学建模---Timoshenko梁单元有限元建模
  14. 方舟服务器炸了怎么修复,《方舟:生存进化》诸事不顺!退款BUG修复服务器又炸...
  15. DVR硬盘录像机技术
  16. 波士顿大学 计算机专业,波士顿大学本科计算机专业课程设置是怎样的?
  17. java 快递项目_基于SpringBoot开发的Java快递代拿系统
  18. 完整打造一个多功能音乐播放器项目(初步设想跟酷狗类似)
  19. C++定义结构体大小根堆的方法
  20. 血与荣耀(第二章-不解之谜)

热门文章

  1. Spring框架梳理总结(适合多刷)
  2. redis外部客户端访问时 Redis Client On Error: Error: connect ETIMEDOUT Config right 端口问题导致
  3. vSAN 报警处理:虚拟机的放置和可用性状态不可访问
  4. 项目打包后使用nginx本地服务器运行
  5. 项目打包和自动化部署
  6. 无线蓝牙耳机的时尚先锋-Nineka南卡 N1
  7. softmax锐化操作
  8. python:json转excel
  9. 公众号写作——经验分享
  10. oracle model 分组,oracle model子句学习笔记例 解析