读取excel内容加到mysql表字段注释

研发组需要同步表数据,但维护表结构注释是记录在Excel中,同步10几张表,字段注释几百行,手动加太麻烦,同时也防止后续再加,所以写了如下脚本。

脚本功能是读excel内容,第一列是表名/字段名 ,第二列是描述,第三列是demo (可以忽略)将字段注释使用alter table的方式加上。

1.先引用包 我们用的openpyxl ,调试中用到了pdb 连接数据库用的是pymysql

import openpyxl
import os
import pymysql
import pdb

hostname='172.17.4.4'
uname='user'
pword='password****'

2.以追加的形式打印出建表sql和需要加注释的sql


def writeFile(content:str):
  with open('adddesc.sql','a') as f :
    f.write('{} \n'.format(content))

3.连接数据库,获取建表sql。

def getTableSql(tablename):
  conn = pymysql.connect(host=hostname,port=3306,user=uname,password=pword,database='dbname')
  res = None
  try:
    cursor = conn.cursor()
    cursor.execute('show create table {}'.format(tablename))
    _,res = cursor.fetchone()
  except pymysql.Error as err:
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 `ResultSet` 获取字段注释,你可以使用以下步骤: 1. 获取 `DatabaseMetaData` 对象,它提供了关于数据库元数据的信息。你可以使用 `Connection` 对象的 `getMetaData` 方法来获取 `DatabaseMetaData` 对象。 ```java Connection connection = DriverManager.getConnection(url, username, password); DatabaseMetaData metaData = connection.getMetaData(); ``` 2. 使用 `DatabaseMetaData` 对象的 `getColumns` 方法来获取信息。你需要提供的名称、模式(可选)和模式名称(可选)作为参数。 ```java ResultSet columns = metaData.getColumns(null, schema, table, null); ``` 在上面的代码中,`schema` 是模式名称,`table` 是名称。通过调用 `getColumns` 方法,将返回一个 `ResultSet` 对象,其中包含了信息。 3. 遍历 `ResultSet` 对象,获取每一注释。使用 `ResultSet` 对象的 `getString` 方法,并传入 `"REMARKS"` 作为参数,可以获取注释信息。 ```java while (columns.next()) { String columnName = columns.getString("COLUMN_NAME"); String columnRemark = columns.getString("REMARKS"); System.out.println("Column: " + columnName + ", Remark: " + columnRemark); } ``` 在上述代码中,通过调用 `getString("COLUMN_NAME")` 和 `getString("REMARKS")` 方法,分别获取名和注释信息。 请注意,数据库驱动程序和具体的数据库管理系统可能会有所不同,因此上述代码可能需要根据你使用的数据库行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值