1.pycharm工具创建一个python文件

2.把下边python代码复制 到 刚创建的python文件中

# 作者:张航铭
# 时间:2022-05-24import xlrd, os
def convert_type(data_type):"""Normalize MySQL `data_type`"""if 'CHAR' == data_type or 'CLNT' == data_type or 'QUAN' == data_type or 'CUKY' == data_type or 'CURR' == data_type or 'DEC' == data_type or 'INT4' == data_type or 'TIMS' == data_type or 'string' == data_type or 'String' == data_type:return 'varchar'elif 'NUMC' == data_type:return 'numeric'elif 'DATS' == data_type:return 'timestamp'else:return data_type# 在mysql中创建表
def mysql_create(fields):stg_table_name = fields[0]['table_name']columns = []primary_key = []table_name_cn = fields[1]['table_name_cn']for field in fields:table_column_index = ""table_column = ""if field['primary_key'] == 'Y':primary_key.append(field['column_name'])if field['column_name'] == 'id':table_column = '`' + field['column_name'] + '`    ' + field['type'] + '    NOT NULL AUTO_INCREMENT    ' + 'COMMENT ' + "'" + field['column_exp'] + "'" + ',\n'else:if field['null_key'] == 'N':# if field['primary_key'] == 'Y':#     primary_key.append(field['column_name'])# print(primary_key)if field['default_value'] is None or field['default_value'] == '':table_column = '`' + field['column_name'] + '`    ' + field['type'] + '    NOT NULL    ' + 'COMMENT ' + "'" + field['column_exp'] + "'" + ',\n'else:table_column = '`' + field['column_name'] + '`    ' + field['type'] + '    NOT NULL DEFAULT "' + str(field['default_value']) + '"    ' + 'COMMENT ' + "'" + \field['column_exp'] + "'" + ',\n'print(field['default_value'])else:table_column = '`' + field['column_name'] + '`    ' + field['type'] + '  DEFAULT NULL  ' + 'COMMENT ' + "'" + field['column_exp'] + "'" + ',\n'if field['index_key'] == 'Y':table_column_index = 'KEY `idx_dim_' + stg_table_name.replace('.', '_') + '_' + field['column_name'] + '` (`' + field['column_name'] + '`) USING BTREE' + ',\n'# print(stg_table_name)if table_column_index is None:columns.append(table_column)else:columns.append(table_column)columns.append(table_column_index)primary_key_str = "PRIMARY KEY ("for item in primary_key:primary_key_str = primary_key_str + '`' + item + '`, '# print(primary_key_str)columns.append(primary_key_str)stg_create_columns = ''.join(columns)[:-2]# print(stg_create_columns)create_stg_sql = "drop table if exists {};\ncreate table {} (\n{})) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='{}' ;".format(stg_table_name, stg_table_name, stg_create_columns, table_name_cn)# print(primary_key)print(create_stg_sql)return create_stg_sql# print(os.getcwd())
par_path = os.getcwd()
paths = [par_path + '\\']
print('---------------paths-------------------')
print(paths)
for path in paths:for filename in os.listdir(path):print(filename)if filename.endswith(".xlsx") or filename.endswith(".xls"):result_sql = ''print(path)print(filename)print(path + filename)worksheet = xlrd.open_workbook(path + filename)table_names = worksheet.sheet_names()for table_name in range(len(table_names)):sheet = worksheet.sheet_by_index(table_name)nrows = sheet.nrowsfields = []for i in range(1, nrows):res = sheet.row_values(i)desc = {'table_name_cn': res[0],'table_name': table_names[table_name].lower(),'column_exp': res[1],'column_name': res[2].lower(),'type': convert_type(res[3]).upper(),'primary_key': res[4],'null_key': res[5],'index_key': res[6],'default_value': res[7],}fields.append(desc)# print(fields)result_sql += mysql_create(fields) + '\n\n'with open(path + '\\' + filename[:-5] + '.sql', "w", encoding='utf-8') as f:f.write(str(result_sql))

图:

3.打开Excel,创建一个.xls文件

4.把刚创建的.xls文件拷贝到与python文件同级目录位置

5.右键运行python文件

6.运行成功后,建表语句将写入同目录下自动生成的.SQL文件中

7.查看.SQL文件

Python自动生成MySQL建表语句脚本相关推荐

  1. 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...

  2. 自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...

    常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...

  3. mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  4. mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  5. mysql 建表语句示例_MySQL Create Table语句和示例

    mysql 建表语句示例 In this article, I am going to explain the MySQL CREATE TABLE statement with examples. ...

  6. 三种常用的MySQL建表语句(转)

    MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1(     ...

  7. MYSQL建表语句错误:1103-Incorrect table name

    如题,使用MYSQL建表语句时发生错误 首先简述一下MySQL建表语句: 举例如下: CREATE table `iauth ` (`iid` varchar(32) NOT NULL COMMENT ...

  8. 【Json】在线JSON转MySQL建表语句工具

    在线JSON转MySQL建表语句工具 在线JSON转MySQL建表语句工具 此工具可以将JSON对象转换成MySQL语句,支持复制和下载. 在开发过程中,使用此工具可以蛮方便的. 当然还有其他工具:( ...

  9. 在线JSON转MySQL建表语句工具

    在线JSON转MySQL建表语句工具 在线JSON转MySQL建表语句工具 JSON:(JavaScript Object Notation, JS对象简谱) 是一种轻量级的数据交换格式.它基于 EC ...

最新文章

  1. 南通专转本计算机考试几级,江苏专转本考试了解多少?
  2. day 01 python爬虫原理
  3. 欧冠淘汰赛第二回合!我厂生死战!!
  4. .NET6之MiniAPI(十):基于策略的身份验证和授权
  5. java 马踏棋盘优化_我所知道的十大常用算法之马踏棋盘算法(深度搜索、贪心思想优化 )...
  6. AppDelegate 方法介绍
  7. leetcode刷题:求容器中能乘最大多少水
  8. web.xml 中的listener、 filter、servlet 加载顺序及其详解1
  9. String replaceAll 方法的问题?
  10. php判断ie的内核,js判断浏览器版本以及浏览器内核的方法_javascript技巧
  11. BerkeleyDB
  12. Android应用程序开发入门
  13. 【拉普拉斯变换】3. 拉普拉斯逆变换
  14. shell学习(一)简单示例help用法
  15. Python---excel筛选
  16. 不懂面试官想要哪种数据分析师,简历写的再好也没用!文末有福利
  17. 中学计算机老师资质,2016下半年教师资格证考试中学信息技术备考指导
  18. 第四题:输入某年某月某日,判断这一天是这一年的第几天?
  19. 热爱生活,从电影开始
  20. TCP/UDP端口大全

热门文章

  1. 【pwsh】按键自动切换中文输入法
  2. JSON 对象(object)
  3. linux脚本执行mysql命令
  4. 智能ai电话机器人源码加密开源版开发
  5. readelf指令使用
  6. 怎样自己开发一个wordpress插件?
  7. 如何自己制作各种证件照和签证照片
  8. 富民银行java开发_富民银行富多利怎么样?从三个方面来看
  9. R语言--百度ECharts接口(echarts4r包)
  10. 手工清除AUTO病毒