天天看點

mysql 修改字段大小寫_統一MySQL字段大小寫,更改資料庫字段統一小寫

#!/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()