首页 > 数据库技术 > 详细

mysql批量生成修改表和列注释语句

时间:2016-01-15 17:41:54      阅读:306      评论:0      收藏:0      [点我收藏+]

当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如

t_users 表中有字段 name 备注名为 姓名,默认值为0,如果用alter table t_users change column name name varchar(10) ;那么备注名就会消失,默认值也会消失。故通过如下语句可以生成完事的alter 语句

修改数据库备注名:
单条语句写法:
alter table t_version comment 版本
生成批量语句写法:
select concat("alter table " ,TABLE_NAME, " comment ", "",TABLE_COMMENT,"",";") from information_schema.tables
where information_schema.tables.TABLE_SCHEMA=shengzhibao and information_schema.tables.TABLE_TYPE=BASE TABLE 修改列备注名: 单条语句写法:ALTER TABLE t_content CHANGE name name [type] [not null] DEFAULT [‘xxx‘ | null] COMMENT ‘xxx‘
生成批量语句写法
select concat("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHANGE ",COLUMN_NAME," ",COLUMN_NAME, " ",COLUMN_TYPE , if(COLUMN_DEFAULT is null," ",concat(" DEFAULT ",if(COLUMN_DEFAULT=‘‘,"‘‘",COLUMN_DEFAULT))), if(IS_NULLABLE=NO," NOT NULL ",‘‘)," COMMENT "," ","",COLUMN_COMMENT,"") from information_schema.COLUMNS where TABLE_SCHEMA=shengzhibao and table_name=t_content_news

 

select concat("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHANGE ",COLUMN_NAME," ",COLUMN_NAME, " ",COLUMN_TYPE ,
if(COLUMN_DEFAULT is null," ",concat(" DEFAULT ",if(COLUMN_DEFAULT=‘‘,"‘‘",COLUMN_DEFAULT))),
if(IS_NULLABLE=‘NO‘," NOT NULL ",‘‘)," COMMENT "," ","‘",COLUMN_COMMENT,"‘")
from information_schema.COLUMNS where TABLE_SCHEMA=‘shengzhibao‘ and table_name=‘t_content_news‘

mysql批量生成修改表和列注释语句

原文:http://www.cnblogs.com/zejin2008/p/5133858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!