sql打印表结构_数据库表结构同步,用Python 竟如此高效?

9aef3e39e9d98b34636591dea3d32048.gif 点击关注 不迷路

近日,某个QQ 群里的一个朋友提出一个问题,如何将一个DB 的表结构同步给另一个DB。针对这个问题,我进行了思考与实践,具体的实现代码如下所示:

# coding:utf-8import pymysqldbDict = {"test1":"l-beta.test1"}dbUser = "test"dbPassword = "123456"class DBUtils():    def __init__(self):        self.conn = pymysql.connect(dbDict['test1'], dbUser, dbPassword)        self.cursor = self.conn.cursor()    def dbSelect(self, sql):        print("------------------------------------")        print(sql)        resultList = []        self.cursor.execute(sql)        result = self.cursor.fetchall()        columns = self.cursor.description        for val in result:            tempDict = {}            for cloNum in range(len(columns)):                tempDict[str(columns[cloNum][0])] = val[cloNum]            resultList.append(tempDict)        print("---------------------打印查询结果----------------------")        print(resultList)        self.dbClose()        return resultList    def dbExcute(self, sql):        print(sql)        self.cursor.execute(sql)        self.dbClose()    def dbClose(self):        self.conn.commit()        self.cursor.close()        self.conn.close()if __name__ == "__main__":    test = DBUtils()    result = test.dbSelect("select table_name from information_schema.tables where table_schema='testdb1'")    for dict1 in result:        test = DBUtils()        create_table_sql = "create table testdb.%s as select * from testdb1.%s" % (dict1['table_name'],dict1['table_name'])        print(create_table_sql)        test.dbExcute(create_table_sql)        

示例代码操作简单,通俗易懂,所以没有过多的注释,如有疑问的小伙伴们,可在公众号后台留言或在[无量测试之道]技术交流微信群,QQ 群积极沟通交流,一起讨论,共同成长~

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。更多原创文章请扫码关注查看,交流与合作请联系:loadkernel@126.com。

QQ技术交流群:41564936

486726d41dc5be7230bccf1a6eb9b8fb.gif

◆Python 之“栈为何物”

◆Python 算法之一

◆Python 如何测试WebService接口

◆Pytest 可视化测试报告之 Allure

◆Python 测试框架之 Unittest & Pytest

来都来了,点个在看再走吧~~~

ed1d1646aae7cfc28e4c418664c8804d.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值