使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵
我先說下場景,昨天因為我們使用了Java工作流框架flowable,它自動生成了許多工作流相關的表,但是這些表都有外鍵關聯(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ù)據(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)到此這篇關于使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵的文章就介紹到這了,更多相關Python刪除MySQL外鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境
蘋果為M1芯片的Mac提供了TensorFlow的支持,本文主要介紹了如何給使用M1芯片的macOS安裝TensorFlow的環(huán)境,感興趣的可以了解一下2021-08-08
Python 日期區(qū)間處理 (本周本月上周上月...)
這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08

