Python-获取数据库中创建table 的sql

Posted 小小菜_v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-获取数据库中创建table 的sql相关的知识,希望对你有一定的参考价值。

import pymysql


class ConnMysql(object):

    def __init__(self):
        """初始化数据库连接"""
        self._conn = self.get_conn()
        self._cur = None
        if self._conn is not None:
            self._cur = self._conn.cursor()

    def get_conn(self):
        """
        连接数据库
        :return:
        """
        conn = pymysql.connect(
            host="**.*.**.**",  # 数据库地址
            user="root",  # 用户名
            password="*******",  # 密码
            database="mysql",  # 数据库名
            port=31061,  # 端口号
            charset="utf8"  # utf8
        )

        return conn

    def list_table(self):
        """
        列出所有的表
        :return:
        """
        self._cur.execute("show tables")
        table_list = [tuple[0] for tuple in self._cur.fetchall()]
        self._cur.close()
        return table_list

    def list_col(self, tabls_name):
        """
        查询所有字段
        :param tabls_name:
        :return:
        """
        self._cur.execute("show create table %s" % tabls_name)
        col_name_list = [table for table in self._cur]
        self._cur.close()
        return col_name_list[0]


if __name__ == '__main__':
    table_list = ConnMysql().list_table()
    print(table_list)

    for table in table_list:
        if table == 'case':
            table = '`case`'
        table_name, table_create_info = ConnMysql().list_col(table)
        with open("table_info.sql", 'a', encoding='gbk') as f:
            f.write(table_create_info)
            # f.write("-"*100)
            f.write("\\n")

以上是关于Python-获取数据库中创建table 的sql的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 从两个表中创建与回显数据的关系

sql 在Postgresql中创建truncate_tables函数。

使用 SELECT ... INTO 在 SQL Server 中创建表

在 mySQL phpMyAdmin 中创建表后如何查看 Create Table SQL 命令

坚持在模型中创建连接 - Power BI

在 SQL 中创建数据库表,奇怪的错误