#!/usr/bin/env python
# encoding = utf8
# Change table columns upper or lower.
# author : Spencer
# create date: 2017-01-12
import MySQLdb
import re
import sys
import time
# db_host = '192.168.1.142'
db_host = '192.168.1.251'
db_port = 3306
db_user = 'admin'
db_pass = 'root'
exlude_list = ['information_schema','mysql','performance_schema','sys']
db = MySQLdb.connect(host=db_host, port=db_port,user=db_user, passwd=db_pass, charset='utf8mb4')
db.character_set_name
conn = db.cursor()
sql = 'show databases'
conn.execute(sql)
db_names =  conn.fetchall()
for db_name in db_names:
if  db_name[0] not in exlude_list:
print db_name[0]
db.select_db(db_name[0])
sql = 'show tables'
conn.execute(sql)
tb_names = conn.fetchall()
for table_name in tb_names:
sql = '''show table status like '%s' ''' % table_name[0]
conn.execute(sql)
if conn.fetchall()[0][17] != 'VIEW':
sql = 'show create table %s' % (table_name[0])
conn.execute(sql)
table_struc = conn.fetchall()[0][1].split('\n')
sql = 'show columns from %s' % (table_name[0])
conn.execute(sql)
field_count = conn.rowcount
for i in xrange(1,field_count + 1):
column_prop = re.sub(r',$','',table_struc[i]).lower()# è¥è¦è®²å段ç»ä¸æ¹æ大åï¼æ¤å¤lower æ¹ä¸ºÂ upper
sql = '''alter table %s modify %s''' % (table_name[0],column_prop)
conn.execute(sql)
print sql
time.sleep(0.5)
db.close()