使用Python批量删除MySQL数据库的全部外键
更新时间:2024年04月25日 11:27:00 作者:我向往自由
这篇文章主要为大家详细介绍了如何使用Python批量删除MySQL数据库的全部外键,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
我先说下场景,昨天因为我们使用了Java工作流框架flowable,它自动生成了许多工作流相关的表,但是这些表都有外键关联,如果单纯的使用sql语句去一个一个的删除外键,那会非常麻烦,所以我写了一个Python脚本来进行批量删除。
前提是你要有个Python环境...
先安装mysql驱动依赖:
pip install mysql-connector-python
因为代码非常简单,所以直接把代码粘出来,改下你mysql的连接信息,直接右键运行即可。
import mysql.connector def delete_foreign_keys(host, port, user, password, database): try: # 连接到数据库 conn = mysql.connector.connect( host=host, port=port, user=user, password=password, database=database ) cursor = conn.cursor() # 查询外键约束 cursor.execute(""" SELECT CONSTRAINT_NAME, TABLE_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE UNIQUE_CONSTRAINT_SCHEMA = %s; """, (database,)) foreign_keys = cursor.fetchall() # 生成删除外键约束的 SQL 语句并执行 for fk in foreign_keys: constraint_name, table_name = fk cursor.execute(f"ALTER TABLE {table_name} DROP FOREIGN KEY {constraint_name};") print(f"Deleted foreign key constraint {constraint_name} from table {table_name}") conn.commit() print("All foreign key constraints deleted successfully!") except mysql.connector.Error as error: print("Error while connecting to MySQL", error) finally: if conn.is_connected(): cursor.close() conn.close() print("MySQL connection is closed") # 设置数据库连接参数 host = '127.0.0.1' port = 3306 # MySQL 默认端口号 user = 'root' password = 'root' database = 'mydatabase' # 调用函数删除外键约束 delete_foreign_keys(host, port, user, password, database)
到此这篇关于使用Python批量删除MySQL数据库的全部外键的文章就介绍到这了,更多相关Python删除MySQL外键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python常用时间操作总结【取得当前时间、时间函数、应用等】
这篇文章主要介绍了Python常用时间操作,包括取得当前时间、时间函数、应用等概念与相关操作技巧,需要的朋友可以参考下2017-05-05CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
这篇文章主要给大家介绍了在CentOS 7下安装Python 3.5并与Python2.7兼容并存的相关资料,文中将安装步骤介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。2017-07-07
最新评论