当前位置: 首页 > news >正文

徐州建设工程招投标官方网站菏泽资深seo报价

徐州建设工程招投标官方网站,菏泽资深seo报价,广州网站制作功能,常州网站推广软件信息文章目录 一、问题背景二、安装python三、代码示例四、总结 一、问题背景 在日常开发过程中,随着项目进展和业务功能的迭代,我们需要对数据库的表结构进行修改,向部分表中追加字段,并对追加后的字段进行数据填充。但是如果需要追加…

文章目录

  • 一、问题背景
  • 二、安装python
  • 三、代码示例
  • 四、总结

一、问题背景

在日常开发过程中,随着项目进展和业务功能的迭代,我们需要对数据库的表结构进行修改,向部分表中追加字段,并对追加后的字段进行数据填充。但是如果需要追加字段的表比较多,并且追加字段后,还可能需要对数据库的脚本进行维护,此时手动操作就过于耗时,所以借助python来操作数据库,进行统一修改。

二、安装python

Python3 环境搭建 | 菜鸟教程

三、代码示例

在使用之前需要先安装mysql.connector包,命令如下:

pip3 install mysql.connector

python代码如下:

import mysql.connector
from mysql.connector import errorcode# 数据库连接配置
config = {'host': '你的地址','port': '你的端口','user': '你的用户','password': '你的密码','database': '你的数据库'
}# 要追加的表和字段,允许指定多个表和多个字段,格式为 {'表名': [('字段名', '注释'), ...]}
tables_to_check = {'sys_user': [('org_code', '组织机构代码')],
}def connect_to_database(config):"""连接数据库:param config: 数据库连接配置:return: 数据库连接"""try:cnx = mysql.connector.connect(**config)# 启用事务cnx.autocommit = Falsereturn cnxexcept mysql.connector.Error as err:if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:print("用户名或密码错误")elif err.errno == errorcode.ER_BAD_DB_ERROR:print("指定的数据库不存在")else:print(err)return Nonedef check_and_add_fields(cursor, table, fields):"""检查并添加字段:param cursor: 游标:param table: 表:param fields: 字段列表:return: alter 语句"""cursor.execute(f"DESCRIBE {table}")existing_fields = {row[0] for row in cursor.fetchall()}alter_statements = []for field, comment in fields:if field not in existing_fields:alter_statement = f"ALTER TABLE {table} ADD COLUMN {field} VARCHAR(50) COMMENT '{comment}';"alter_statements.append(alter_statement)cursor.execute(alter_statement)return alter_statementsdef update_org_code(cursor, table):"""更新 org_code 字段(此方法用于对追加的字段填充数据,可根据具体需求进行改造):param cursor: 游标:param table: 表:return: 空"""update_statement = f"""UPDATE {table} tJOIN sys_dept d ON t.dept_id = d.dept_idSET t.org_code = d.org_code;"""cursor.execute(update_statement)def print_summary(alter_statements_summary, tables_updated, no_alter_needed):"""输出更新和未更新表的信息:param alter_statements_summary: 修改语句列表:param tables_updated: 更新了的表:param no_alter_needed: 无需修改的表列表:return: 空"""print("\n追加字段修改语句:")for table, alter_statements in alter_statements_summary:print(f"{table} 修改语句:")for stmt in alter_statements:print(stmt)print("\n更新追加字段的表:")for table in tables_updated:print(table)print("\n不需要追加字段的表:")for table in no_alter_needed:print(table)def main():"""主函数:return: 空"""print("连接数据库...")cnx = connect_to_database(config)if not cnx:returnprint("开始修改...")try:cursor = cnx.cursor()alter_statements_summary = []tables_updated = []no_alter_needed = []for table, fields in tables_to_check.items():alter_statements = check_and_add_fields(cursor, table, fields)if alter_statements:alter_statements_summary.append((table, alter_statements))tables_updated.append(table)update_org_code(cursor, table)else:no_alter_needed.append(table)# 提交事务cnx.commit()print("所有修改提交成功")print_summary(alter_statements_summary, tables_updated, no_alter_needed)except mysql.connector.Error as err:# 回滚事务cnx.rollback()print(f"发生异常,错误信息: {err}")print("所有修改全部回滚")finally:cursor.close()cnx.close()if __name__ == "__main__":main()

执行结果:

连接数据库...
开始修改...
所有修改提交成功追加字段修改语句:
sys_user 修改语句:
ALTER TABLE sys_user ADD COLUMN org_code VARCHAR(50) COMMENT '组织机构代码';更新追加字段的表:
sys_user不需要追加字段的表:

四、总结

以上python代码处理的事情,只是我们日常开发中遇到问题的一个缩影,大家可以根据自己的具体需求,进行修改。最重要的是要清楚自己想解决的问题是什么,如何借助工具更好地去解决问题,从而提升自己的工作效率。

http://www.hengruixuexiao.com/news/38130.html

相关文章:

  • 网站栏目划分怎么做深圳优化公司哪家好
  • 营销型 展示类网站seo公司 上海
  • 建筑公司加盟分公司做seo需要哪些知识
  • 2008发布asp网站阿里云免费域名
  • 怎么通过做网站赚钱关键词优化公司如何选择
  • 科技公司网站版面设计百度优化教程
  • 做网站的销售好做吗企业管理培训机构排名前十
  • 招聘代做网站怎样开网站
  • 店铺设计思路及创意武汉seo网站优化运营
  • 重庆高端网站seo信息流广告优化师培训
  • 网站建设网络安全济南seo公司报价
  • wordpress关闭页面评论搜索引擎优化的作用
  • 做网站为什么要建站点如何查询百度收录
  • 吉林北京网站建设google代理
  • 长春高铁站网络广告设计
  • 广东网站建设包括什么软件免费b站推广网站详情
  • 网站运营需要 做哪些工作seo排名技术教程
  • 网站开发预算怎么算国内真正的免费建站
  • 杭州vi设计策划搜索引擎优化的内容
  • 深圳网站建设的费用百度系优化
  • 合肥网站制作公司青岛网站设计微动力
  • 网站怎么做多级菜单长春网站公司哪家好
  • 一家专门做代购的网站个人博客网页制作
  • 注册 网站开发 公司东莞谷歌推广公司
  • 网站开发是web开发吗网站权重是怎么提升的
  • 艺术字体logo设计生成器哪家公司做seo
  • 网站域名申请平台运营推广方案
  • 中国建设银行新闻网站百度关键词排名提升工具
  • 后台网站模板 html中国疫情今天最新消息
  • 网站开发网站制作报价谷歌seo优化推广