应用场景:
需要获取mysql多表跨库建表语句时
import pymysql
tables = [""]
hosts = [""]
user = ''
password = ""
port =
db_host = ''
for host in hosts:
mysql = pymysql.connect(host=host, user=user, password=password, port=port)
cursor = mysql.cursor()
for dbtbs in tables:
db_name = dbtbs.split('.')[0]
tb_name = dbtbs.split('.')[1] sql = "select count(1) from information_schema.tables where TABLE_SCHEMA = '{}' and TABLE_NAME = '{}' ".format(db_name,tb_name)
cursor.execute(sql)
count = cursor.fetchall()[0][0]
if count > 0:
db_host = host
print("----该表{}.{}在这台{}服务器上---".format(db_name,tb_name,host))
create_sql = "show create table `{}`.`{}` ".format(db_name,tb_name)
cursor.execute(create_sql) print("\r\n -------------{}.{}---建表开始-------------- ".format(db_name,tb_name)) print(cursor.fetchall()[0][1]) print("-------------{}.{}---建表结束--------------\r\n ".format(db_name,tb_name))
# 6.关闭查询
cursor.close()
# 关闭数据库
mysql.close()