使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵
我先說下場景,昨天因為我們使用了Java工作流框架flowable,它自動生成了許多工作流相關(guān)的表,但是這些表都有外鍵關(guān)聯(lián),如果單純的使用sql語句去一個一個的刪除外鍵,那會非常麻煩,所以我寫了一個Python腳本來進行批量刪除。
前提是你要有個Python環(huán)境...
先安裝mysql驅(qū)動依賴:
pip install mysql-connector-python
因為代碼非常簡單,所以直接把代碼粘出來,改下你mysql的連接信息,直接右鍵運行即可。
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 默認端口號 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)文章
python快速建立超簡單的web服務(wù)器的實現(xiàn)方法
某些條件測試,需要一個簡單的web服務(wù)器測試一下,為此專門去配置個nginx 或者 apache服務(wù)器略顯麻煩,這里就為大家介紹一下使用python快速建立超簡單的web服務(wù)器的方法,需要的朋友可以參考下2018-02-02python 處理微信對賬單數(shù)據(jù)的實例代碼
本文通過實例代碼給大家介紹了python 處理微信對賬單數(shù)據(jù),代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07