python构造批量insert语句怎样实现?教你两种方法

Admin 2021-08-19 群英技术资讯 1312 次浏览

    python构造批量insert语句怎样实现?insert语句是SQL语句中常用的语句,主要用来向表格中插入新的行。而一行行写入比较麻烦,下面我们就来看看使用python构造批量insert语句的方法,有需要的朋友可以参考。

    1.建表语句

    2.目标insert语句

INSERT INTO `bidprcu_dic_a`(
    `DIC_ID`, `DIC_TYPE_CODE`, `DIC_TYPE_NAME`, `DATA_DIC_CODE`, `DATA_DIC_NAME`, `PRNT_CODE`, `SRT`, `MEMO`, 
    `DATA_SOUC`, `RID`, `CRTER_ID`, `CRTER_NAME`, `CRTE_OPTINS_NO`, `CRTE_TIME`, `OPT_TIME`, `OPTER_ID`,
     `OPTER_NAME`, `OPTINS_NO`, `UPDT_TIME`, `INVD_FLAG`)
VALUES ('1', 'cert_type', '证件类型', '11', '营业执照', '', NULL, '', NULL, '', NULL, NULL, NULL, '2020-07-07 11:30:39', 
NULL, NULL, NULL, NULL, '2020-07-07 11:30:39', '0');

    3.方法一:python生成insert语句(字符串的拼接)

 
#生成的目标insert语句
"""
INSERT INTO `bidprcu_dic_a`(
    `DIC_ID`, `DIC_TYPE_CODE`, `DIC_TYPE_NAME`, `DATA_DIC_CODE`, `DATA_DIC_NAME`, `PRNT_CODE`, `SRT`, `MEMO`,
 `DATA_SOUC`, `RID`, `CRTER_ID`, `CRTER_NAME`, `CRTE_OPTINS_NO`, `CRTE_TIME`, `OPT_TIME`, `OPTER_ID`, `OPTER_NAME`, 
`OPTINS_NO`, `UPDT_TIME`, `INVD_FLAG`)
VALUES ('1', 'cert_type', '证件类型', '11', '营业执照', '', NULL, '', NULL, '', NULL, NULL, NULL, '2020-07-07 11:30:39', 
NULL, NULL, NULL, NULL, '2020-07-07 11:30:39', '0');
"""
import uuid
def create_uid():
    return str(uuid.uuid1())
 
 
 
f =open('0524insert.txt','w')
 
for i in range(1,3):
    DIC_ID=create_uid()
    DIC_TYPE_CODE = "cert_type"
    DIC_TYPE_NAME="证件类型"
    DATA_DIC_CODE="11"
    DATA_DIC_NAME="营业执照"
    PRNT_CODE=""
    SRT="NULL"
    CRTE_TIME="2020-07-07 11:30:39"
    UPDT_TIME="2020-07-07 11:30:39"
    INVD_FLAG="0"
 
    sql = "INSERT INTO bidprcu_dic_a(DIC_ID,DIC_TYPE_CODE,DIC_TYPE_NAME,DATA_DIC_CODE,DATA_DIC_NAME,PRNT_CODE,SRT,
CRTE_TIME,UPDT_TIME,INVD_FLAG) "\
          +"VALUES" +"(" +"'"+DIC_ID+"'"+",'"+DIC_TYPE_CODE+"'"+",'"+DIC_TYPE_NAME+"'"+",'"+DATA_DIC_CODE+"'"+",
'"+DATA_DIC_NAME+"'"+",'"+PRNT_CODE+"'"+",'"+SRT+"'"+",'"+CRTE_TIME+"'"+",'"+UPDT_TIME+"'"+","+INVD_FLAG+""+")"+";"
 
    print(sql)
    f.write(sql)
    f.write("\n")
 
f.close()
 

    最终生成数据

INSERT INTO bidprcu_dic_a(DIC_ID,DIC_TYPE_CODE,DIC_TYPE_NAME,DATA_DIC_CODE,DATA_DIC_NAME,

PRNT_CODE,SRT,CRTE_TIME,UPDT_TIME,INVD_FLAG) VALUES('6b854a06-bcf9-11eb-8936-e454e805d291','cert_type','证件类型','11','营业执照','','NULL','2020-07-07 11:30:39','2020-07-07 11:30:39',0);

    4.方法二:python生成insert语句(列表的方法,value生成后替换)

# 生成的目标insert语句
"""
INSERT INTO `bidprcu_dic_a`(
    `DIC_ID`, `DIC_TYPE_CODE`, `DIC_TYPE_NAME`, `DATA_DIC_CODE`, `DATA_DIC_NAME`, `PRNT_CODE`, `SRT`, `MEMO`, 
`DATA_SOUC`, `RID`, `CRTER_ID`, `CRTER_NAME`, `CRTE_OPTINS_NO`, `CRTE_TIME`, `OPT_TIME`, `OPTER_ID`, `OPTER_NAME`,
 `OPTINS_NO`, `UPDT_TIME`, `INVD_FLAG`)
VALUES ('1', 'cert_type', '证件类型', '11', '营业执照', '', NULL, '', NULL, '', NULL, NULL, NULL, '2020-07-07 11:30:39',
 NULL, NULL, NULL, NULL, '2020-07-07 11:30:39', '0');
"""
import uuid
 
 
def create_uid():
    return str(uuid.uuid1())
 
 
 
f = open('0524insert.txt', 'w')
value = []
for i in range(1, 3):
    list = []
    DIC_ID = list.append(create_uid())
    DIC_TYPE_CODE = list.append("cert_type")
    DIC_TYPE_NAME = list.append("证件类型")
    DATA_DIC_CODE = list.append(11)
    DATA_DIC_NAME = list.append("营业执照")
    PRNT_CODE = list.append("")
    SRT = list.append("NULL")
    CRTE_TIME = list.append("2020-07-07 11:30:39")
    UPDT_TIME = list.append("2020-07-07 11:30:39")
    INVD_FLAG = list.append(0)
    print(list)
    a = value.append(list)
    c = str(list)
    print(c)
    c = c.replace("[", "(").replace("]", ")")
    print(c)
 
    sql = "INSERT INTO bidprcu_dic_a(DIC_ID,DIC_TYPE_CODE,DIC_TYPE_NAME,DATA_DIC_CODE,DATA_DIC_NAME,PRNT_CODE,
SRT,CRTE_TIME,UPDT_TIME,INVD_FLAG) " \
          + "VALUES" + c + ";"
    print(sql)
    f.write(sql)
    f.write("\n")
 
f.close()

    注意:

    1.在使用时修改range的值即可

    2.在生成大批量数据时,可以考虑多线程

    以上就是关于python构造批量insert语句的方法,大家可以参考,希望本文对大家学习python中对数据库的操作有帮助,想要了解更多python构造SQL语句的内容,大家可以继续关注其他相关文章。

文本转载自脚本之家

群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服