python小程式-表中查詢一個欄位,該欄位是個sql1,需要迴圈驗證表1中的每一個sql1執行是否報錯,報錯則打印表中的序號和sql
阿新 • • 發佈:2021-11-04
1、需求
表中查詢一個欄位,該欄位是個sql1,需要迴圈驗證表1中的每一個sql1執行是否報錯,報錯則打印表中的序號和sql
2、步驟
1、查詢得到這個sql
2、獲取這個sql並執行
3、丟擲異常
3、程式碼
import sys import pymysql mysqlHost = "XXXXXXXXXX" mysqlPort = XXXXXXXXXX mysqlUser = "XXXXXXXXXX" mysqlPwd = "XXXXXXXXXX" mysqlSchema = "XXXXXXXXXX" db = pymysql.connect(host = mysqlHost,port = mysqlPort,user = mysqlUser,passwd = mysqlPwd,db = mysqlSchema,charset = 'utf8'); querySql = """SELECT sql欄位,欄位 FROM 表 """ querySqlCursor = db.cursor() querySqlCursor.execute(querySql) querySqlResult = querySqlCursor.fetchall() SqlCursor = db.cursor() # 踩過兩個坑,第一個是sql獲取的是元祖,所以即使只有一個欄位也要索引sql[0] # 踩的第二坑就是sql中有換行,所以要替換為空格 for sql in querySqlResult: try: sql[0].replace('\r\n\t',' ') SqlCursor.execute(sql[0]) SqlResult = SqlCursor.fetchall() # print(SqlResult) except Exception as e: print("error %s" % e) print (sql) db.close()