1. 程式人生 > 實用技巧 >庫表批量新增id欄位

庫表批量新增id欄位

實現思路:查詢庫中的所有表,查詢每張表中是否包含id欄位,遍歷欄位結束後如果沒有id欄位,則新增id

#!/usr/bin/env python3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import pymysql.cursors

"""
功能:為mysql庫中每張表增加一個id欄位,主鍵,自增,無符號,非空
"""

dbname = 'test'

connection = pymysql.connect(host='ip', user='deploy', password='deploy@dev', db=dbname, charset='
utf8', cursorclass=pymysql.cursors.DictCursor) results = [] count = [] def query_desc(table_name): cursor2 = connection.cursor() sql = "select * from " + table_name query = cursor2.execute(sql) desc = cursor2.description number = 0 for field in
desc: if field[0] == 'id': print(table_name) count.append(1) break else: number += 1 if number == len(desc): u_sql = "alter table " + table_name + " add id bigint unsigned not null primary key auto_increment first" cursor3
= connection.cursor() cursor3.execute(u_sql) try: with connection.cursor() as cursor: sql = "SHOW TABLES" cursor.execute(sql) result = cursor.fetchall() for i in range(len(result)): results.append(result[i]['Tables_in_test']) for a in range(len(results)): query_desc(results[a]) finally: connection.close() print(len(count)) print(results) print(len(results))