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