python操作mysql 多參數insert,獲取自增id

# coding:utf-8

import configparser
import pymysql
config = configparser.ConfigParser()
config.read('mysql.conf')
lists_header = config.sections()  # 配置組名, ['luzhuo.me', 'mysql'] # 不含'DEFAULT'


host=config['mysql_test']['host']
user=config['mysql_test']['user']
password=config['mysql_test']['password']
port=config['mysql_test']['port']

#獲取所有未設置的項目
conn = pymysql.connect(host=host, user=user, passwd=password, db="ssb_ibt",port=3307)
cursor = conn.cursor()

sql="select id from project where import_status=0 and cus_project_id is not null"
cursor.execute(sql)
pids = cursor.fetchall()
#獲取需要設置的用戶信息
sqlUserInfos="select id,name from ssb_user where `name` in ('windy')"

cursor.execute(sqlUserInfos)
userInfos=cursor.fetchall()


for pid in pids:
    try:
        #插入設置信息
        sqlConfig="insert into config(pid,create_time,creator,if_empty,after_audit) VALUES (%s,now(),1,1,1)"
        cursor.execute(sqlConfig,pid)
        conn.commit()
        #插入步驟信息
        sqlStep="insert into config_step(pid,stage_order,stage_name,step_order,step_name,audit_type,notice_type,`condition`) VALUES (%s,1,'內控',1,'一級審覈',3,1,0)"
        cursor.execute(sqlStep, pid)
        stepId=conn.insert_id()
        conn.commit()
        #插入步驟的人員信息
        i = 0
        for user in userInfos:
            sqlStepPerson="insert into config_person(user_id,step_id,user_name,type,`order`) values (%s,%s,%s,1,%s)"
            i = i + 1
            params=(user[0],stepId,user[1],i)
            print(params)
            cursor.execute(sqlStepPerson,params)
            conn.commit()
        #修改項目的是否引入審覈模板的狀態:未設置==》已設置
        sqlUpdateProject="update project set import_status=1 where id=%s"
        cursor.execute(sqlUpdateProject, pid)
        conn.commit()
    except Exception as e:
        print("error==》", e)
        conn.rollback()
print("項目批量審覈設置完畢")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章