使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵
我先說下場景,昨天因?yàn)槲覀兪褂昧薐ava工作流框架flowable,它自動(dòng)生成了許多工作流相關(guān)的表,但是這些表都有外鍵關(guān)聯(lián),如果單純的使用sql語句去一個(gè)一個(gè)的刪除外鍵,那會非常麻煩,所以我寫了一個(gè)Python腳本來進(jìn)行批量刪除。
前提是你要有個(gè)Python環(huán)境...
先安裝mysql驅(qū)動(dòng)依賴:
pip install mysql-connector-python
因?yàn)榇a非常簡單,所以直接把代碼粘出來,改下你mysql的連接信息,直接右鍵運(yùn)行即可。
import mysql.connector
def delete_foreign_keys(host, port, user, password, database):
try:
# 連接到數(shù)據(jù)庫
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 語句并執(zhí)行
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")
# 設(shè)置數(shù)據(jù)庫連接參數(shù)
host = '127.0.0.1'
port = 3306 # MySQL 默認(rèn)端口號
user = 'root'
password = 'root'
database = 'mydatabase'
# 調(diào)用函數(shù)刪除外鍵約束
delete_foreign_keys(host, port, user, password, database)到此這篇關(guān)于使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵的文章就介紹到這了,更多相關(guān)Python刪除MySQL外鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境
蘋果為M1芯片的Mac提供了TensorFlow的支持,本文主要介紹了如何給使用M1芯片的macOS安裝TensorFlow的環(huán)境,感興趣的可以了解一下2021-08-08
Python 日期區(qū)間處理 (本周本月上周上月...)
這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python數(shù)據(jù)容器總結(jié)示例詳解
本文主要介紹了Python中的數(shù)據(jù)容器,包括列表、元組、字符串、集合和字典,每種數(shù)據(jù)容器都有其獨(dú)特的定義、操作方法和特點(diǎn),感興趣的朋友跟隨小編一起看看吧2025-11-11
Python實(shí)現(xiàn)微信小程序自動(dòng)操作工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)微信小程序自動(dòng)化操作的小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01
Python進(jìn)行數(shù)據(jù)提取的方法總結(jié)
數(shù)據(jù)提取是分析師日常工作中經(jīng)常遇到的需求。如某個(gè)用戶的貸款金額,某個(gè)月或季度的利息總收入,某個(gè)特定時(shí)間段的貸款金額和筆數(shù),大于5000元的貸款數(shù)量等等。本篇文章介紹如何通過python按特定的維度或條件對數(shù)據(jù)進(jìn)行提取,完成數(shù)據(jù)提取需求。2016-08-08
Python中l(wèi)ogging模塊的用法實(shí)例
這篇文章主要介紹了Python中l(wèi)ogging模塊的用法實(shí)例,以實(shí)例形式介紹了日志模塊logging的用法,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09

