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;
本文来自博客园,作者:忙碌在路上,转载请注明原文链接:https://www.cnblogs.com/netsa/p/7383069.html