mysql 批量修改字段方法


一、正式環境操作注意事項:
1、關閉應用訪問或者設置數據庫只讀
mysql設為只讀方法:
開啟只讀:
mysql> show global variables like "%read_only%";  #查看相關參數,OFF為關,ON為開,默認為OFF
mysql> flush tables with read lock;
mysql> set global read_only=1;

關閉只讀:
mysql> unlock tables;
mysql> set global read_only=0;
mysql> show global variables like "%read_only%";

2、操作前備份數據庫
3、開始及結束檢查外鍵引用參數
4、操作時間為晚間


二、批量修改字段類型流程


#未防止字段進行了外鍵關聯,批量操作前臨時關閉mysql外鍵引用,mysql內執行
mysql> SET foreign_key_checks = 0; 

#獲得修改語句並存儲到臨時表
mysql> USE db;
mysql> CREATE TEMPORARY TABLE XIUGAI SELECT   CONCAT(  'alter table ',table_name,' MODIFY COLUMN ',column_name, ' datetime(3) ;'  ) AS col FROM  INFORMATION_SCHEMA.columns a   WHERE TABLE_SCHEMA = 'ofbiz' AND data_type IN ('datetime') ;

#查看獲得的語句
mysql> SELECT * FROM XIUGAI;

#mysql外執行,導出表內容,-N不帶列名 -e執行語句
mysql -uroot -p -N -e "select * from XIUGAI" db>/home/abc/XIUGAI.SQL

#mysql外執行,通過腳本批量執行alter語句
mysql -uroot -p db </home/abc/XIUGAI.SQL


#恢復外鍵引用關系,mysql內執行
mysql> SET foreign_key_checks = 1;
#核對外鍵引用是否開啟,mysql內執行,1代表開啟,0代表關閉
mysql> SELECT  @@FOREIGN_KEY_CHECKS; 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM