日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

運用Python快速的對MySQL數據庫進行重命名

瀏覽:32日期:2022-06-17 11:24:39
目錄常規思路更快捷的方法使用方法

對數據庫的表進行重命名可以使用以下原生sql:

RENAME TABLE old_table TO new_table;

窘境:但是MySQL并沒有直接支持對數據庫進行重命名

那么如何運用Python快速的對現有的數據庫進行重命名呢?

比如項目初期,對數據庫的命名(db_ridingroad)沒有規劃好,然后在下面創建了大量的表和寫入了大量的數據,現在需要對數據庫的名字進行重命名為(db_news_website)

常規思路

下面的方法步驟較為繁瑣

-- 數據庫備份mysqldump ?u [UserName] ?p[Password] ?R [DB_Name] > [DB_Name].sql-- 創建新數據庫create database [New_DB_Name];-- 把備份的數據導入到新數據庫mysql ?u [UserName] ?p[Password] [New_DB_Name] < [DB_Name].sql-- 刪除舊數據庫drop database [DB_Name];更快捷的方法

只需要執行下面這條命令即可

python rename_database.py old_db_name new_db_name

我們可以使用表重命名的方法,把表重命名到新的數據庫之下。基本邏輯如下:

創建新數據庫 獲取舊數據庫下所有的表名 把表重命名到新的數據庫名下 刪除舊數據庫

下面使用Python代碼去實現,主要代碼(完整代碼見文末):

def rename_db(old_name, new_name): ''' 數據庫重命名 :param old_name: 原來的數據庫名 :param new_name: 新數據庫名 :return: 成功返回True, 失敗返回False ''' # 獲取所有的表名 sql = '''SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=%s''' conn, cursor = context() try:# 創建新數據庫名cursor.execute(’create database if not exists {}’.format(new_name))cursor.execute(sql, (old_name, ))results = cursor.fetchall()# 獲取表明,循環處理放到新的數據庫名下for r in results: tb = r[’TABLE_NAME’] rename_sql = '''RENAME TABLE {}.{} to {}.{}'''.format(old_name, tb, new_name, tb) cursor.execute(rename_sql)# 把舊數據庫刪掉cursor.execute(’drop database {}’.format(old_name)) except Exception as ex:conn.rollback()print('rename_db Exception: {},{}'.format(sql, ex))return False else:# 如果沒有發生異常,則提交事務conn.commit() finally:conn.close() return True使用方法

1.安裝PyMySQL

pip install PyMySQL

2.修改腳本中關于數據庫賬號配置信息部分

MYSQL_HOST = ’127.0.0.1’MYSQL_PORT = 3306MYSQL_USER = ’ridingroad’MYSQL_PASSWORD = ’xxxxyyyy’MYSQL_DATABASE = ’db_ridingroad’

3.切換到腳本所在目錄,執行以下命令即可(數據無價,請先mysqldump備份)

python rename_database.py old_db_name new_db_name

完整代碼如下:

import sysimport pymysqlMYSQL_HOST = ’127.0.0.1’MYSQL_PORT = 3306MYSQL_USER = ’ridingroad’MYSQL_PASSWORD = ’xxxxyyyy’MYSQL_DATABASE = ’db_ridingroad’MYSQL_CHARSET = ’utf8’def context(is_dict_cursor=True, database=MYSQL_DATABASE): ''' 創建數據庫連接, 數據以字典結構返回 :param is_dict_cursor: 是否返回字典結構的數據 :param database: 默認連接的數據庫 :return: 返回一個連接和一個浮標 ''' try:config = { ’host’: MYSQL_HOST, ’port’: MYSQL_PORT, ’user’: MYSQL_USER, ’password’: MYSQL_PASSWORD, ’database’: database, ’charset’: MYSQL_CHARSET,}conn = pymysql.connect(**config)if is_dict_cursor: cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)else: cursor = conn.cursor()return conn, cursor except Exception as ex:print('connect database failed, {},{}'.format(400, ex))raise Exception({’code’: 400, ’msg’: ex})def rename_db(old_name, new_name): ''' 數據庫重命名 :param old_name: 原來的數據庫名 :param new_name: 新數據庫名 :return: 成功返回True, 失敗返回False ''' # 獲取所有的表名 sql = '''SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=%s''' conn, cursor = context() try:conn.begin()# 創建新數據庫名cursor.execute(’create database if not exists {}’.format(new_name))cursor.execute(sql, (old_name, ))results = cursor.fetchall()# 獲取表明,循環處理放到新的數據庫名下for r in results: tb = r[’TABLE_NAME’] rename_sql = '''RENAME TABLE {}.{} to {}.{}'''.format(old_name, tb, new_name, tb) cursor.execute(rename_sql)# 把舊數據庫刪掉cursor.execute(’drop database {}’.format(old_name)) except Exception as ex:conn.rollback()print('rename_db Exception: {},{}'.format(sql, ex))return False else:# 如果沒有發生異常,則提交事務conn.commit() finally:conn.close() return Trueif __name__ == ’__main__’: old_db = sys.argv[1] new_db = sys.argv[2] rename_db(old_name=old_db, new_name=new_db)

以上就是運用Python快速的對MySQL數據庫進行重命名的詳細內容,更多關于python 重命名MySQL數據庫的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久亚洲成人| 亚洲综合国产| 五月精品视频| 欧美99久久| 免费黄色成人| 不卡在线一区| 91精品国产调教在线观看| 91精品电影| 色乱码一区二区三区网站| 久久九九99| 国产乱码精品一区二区三区亚洲人 | 亚洲免费网址| 日韩精品91亚洲二区在线观看| 精品久久美女| 亚洲资源网站| 午夜在线视频一区二区区别 | 欧美+日本+国产+在线a∨观看| 一区二区三区国产盗摄| 在线看片福利| 国产白浆在线免费观看| 美女国产一区二区三区| 久久国内精品视频| 亚洲日本三级| 四虎国产精品免费久久| 欧美gv在线| 美女在线视频一区| 国产精品久久乐| 欧美国产免费| 免费一级欧美在线观看视频| 成人三级高清视频在线看| 国语精品一区| 蜜桃成人av| 欧美特黄一级| 久久精品影视| 蜜桃av在线播放| 蜜桃成人av| 国产精品激情| 国产伊人精品| 男女精品网站| 亚洲1区在线| 国产精品丝袜在线播放| 国产精品久久久久久久久久妞妞 | 久久精品伊人| 美女视频黄久久| 国产探花在线精品一区二区| 国产成人调教视频在线观看| 国产日韩视频| 视频一区中文字幕| 你懂的亚洲视频| а√天堂中文在线资源8| 樱桃成人精品视频在线播放| 日本va欧美va精品| 影音国产精品| 欧美91在线|欧美| 99久精品视频在线观看视频| 亚洲专区欧美专区| 久久爱www.| 亚洲一区欧美| 日本麻豆一区二区三区视频| 丁香婷婷久久| 日韩av不卡一区二区| 日韩欧美精品| 久久国产精品久久久久久电车 | 日韩va亚洲va欧美va久久| 麻豆一区二区在线| 91精品电影| 欧洲一级精品| 精品一区二区三区亚洲| 亚洲美女久久| 热久久久久久久| 亚洲一区欧美二区| 国产综合色区在线观看| 国产麻豆综合| 免费国产自久久久久三四区久久 | 久久人人88| 国产日韩欧美一区二区三区在线观看| 1024精品久久久久久久久| 久久丁香四色| 另类欧美日韩国产在线| 国产精品www994| 国产精品a级| 国产激情综合| 麻豆国产精品| 国产精品片aa在线观看| 精品免费av一区二区三区| 亚洲区第一页| 亚洲精品免费观看| 香蕉久久久久久| 一区二区三区四区日韩| 亚洲精品在线a| 老司机免费视频一区二区三区| 人人爱人人干婷婷丁香亚洲| 国产情侣久久| 久久精品五月| 国产精品伦理久久久久久| 中文av在线全新| 久色成人在线| 日韩激情一二三区| 日韩精品第二页| 麻豆91小视频| 国产福利一区二区三区在线播放| 福利片在线一区二区| 激情欧美丁香| 日韩不卡手机在线v区| 69精品国产久热在线观看| 久久久精品区| 天堂资源在线亚洲| 国产精品自在| 欧美日韩国产在线一区| 免费在线观看不卡| 亚洲精品看片| 日韩欧美午夜| 亚洲最新av| 欧美日韩国产v| 久久精品97| 色欧美自拍视频| 久久亚洲在线| 国产精品videossex久久发布| а√天堂8资源在线| 视频一区日韩精品| 亚洲精品中文字幕乱码| 日本欧美一区二区| 亚洲天堂av影院| 日本午夜精品视频在线观看| 日韩欧美一区二区三区免费观看| 热久久久久久| 最新日韩欧美| 激情国产在线| 麻豆成人91精品二区三区| 久久亚洲视频| 老牛影视精品| 国产精品a久久久久| 国产午夜久久av| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲夜间福利| 中文字幕在线视频久| 国产精品久久久久久久久久齐齐 | 成人va天堂| 国产乱码精品一区二区亚洲| 亚洲作爱视频| 国产精品不卡| 国产精品亚洲二区| 久久亚洲不卡| 亚洲精品美女91| 日本aⅴ免费视频一区二区三区| 亚洲精品韩国| 一区免费视频| 亚洲精品伦理| 综合激情婷婷| 日韩精品一页| 国产图片一区| 久久av在线| 成人在线丰满少妇av| 肉色欧美久久久久久久免费看| 日韩国产在线不卡视频| 日韩国产欧美三级| 一区二区电影| 婷婷综合国产| 国产欧美日韩精品高清二区综合区| 日韩精品1区2区3区| 麻豆精品av| 国产一区二区三区不卡av| 亚洲成人二区| 激情五月综合| 99国产精品私拍| 欧美日韩国产一区精品一区| 免费在线亚洲| 国产伦精品一区二区三区视频| 国产精品对白| 国产成人免费视频网站视频社区| 精品一区二区三区中文字幕在线| 国产欧美综合一区二区三区| 青青青免费在线视频| 亚洲男女自偷自拍| 精品99在线| 亚洲三级毛片| 成人羞羞视频播放网站| 夜夜嗨网站十八久久| 久久激情五月婷婷| 亚洲国产成人精品女人| 国产精品一区二区精品视频观看 | 先锋亚洲精品| 麻豆高清免费国产一区| 不卡在线一区| 精品不卡一区| 日韩三级一区| 国产精品老牛| 久久精品主播| 精品国产一区二区三区性色av| 蜜桃成人av| 精品国产成人| 国产精品mm| 中文字幕一区二区三区在线视频| 韩国一区二区三区视频| 日韩毛片一区| 欧美日本三区| 国产欧美二区| 久久爱www成人| 91亚洲成人| 日韩av中文在线观看|