mysql批量生成修改表和列注释语句
生活随笔
收集整理的這篇文章主要介紹了
mysql批量生成修改表和列注释语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當我們在一個數據庫修改完備注后,需要將其導致另一個服務器上的數據庫中,需要生成批量執行語句,方便操作,注意用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='dwzx' and information_schema.tables.TABLE_TYPE='BASE TABLE'
?
生成列修改
?
單條語句寫法:ALTER TABLE t_content CHANGE name name [type] [character set utf8] [COLLATE 'utf8_general_ci'] [not null] DEFAULT ['xxx' | null] [auto_increment] COMMENT 'xxx' 以下有幾種比較典型的寫法(全格式寫): ALTER TABLE `t_month_detail` CHANGE `bpu_time` `bpu_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT '發布時間';--timestamp 類型比較特別,得寫全,如下寫法: ALTER TABLE `t_month_detail` CHANGE `bpu_time` `bpu_time` timestamp COMMENT '發布時間'; 默認值不為null。 ALTER TABLE `t_award_user` CHANGE `id` `id` bigint(20) NOT NULL auto_increment COMMENT ''; -- 沒有加auto_increment會丟失此屬性 ALTER TABLE `t_agens` CHANGE `intro` `intro` char(10) character set utf8 COLLATE 'utf8_general_ci' null DEFAULT null COMMENT '機構簡介'; ALTER TABLE `t_news` CHANGE `use` `use` bit(1) null DEFAULT b'0' COMMENT '是否顯示';生成批量語句寫法--完整格式寫法(嘔心瀝血之作) select concat("ALTER TABLE ","`",col.TABLE_NAME,"`"," CHANGE ","`",col.COLUMN_NAME,"`"," ","`",col.COLUMN_NAME,"`"," ",col.COLUMN_TYPE , " ", if(col.CHARACTER_SET_NAME is null," ",concat(" character set ",col.CHARACTER_SET_NAME," ")), if(col.COLLATION_NAME is null," ",concat(" COLLATE ","'",col.COLLATION_NAME,"' ")), if(col.IS_NULLABLE='NO'," NOT NULL "," null "), if(col.COLUMN_DEFAULT is null , if(col.EXTRA='auto_increment' or col.IS_NULLABLE='NO'," "," DEFAULT null ") ,concat(" DEFAULT ",if(col.DATA_TYPE='timestamp' or col.DATA_TYPE='bit' ,col.COLUMN_DEFAULT,concat("'",col.COLUMN_DEFAULT,"'")))), if(col.EXTRA is null ," ",concat(" ",col.EXTRA," " )), " COMMENT "," ","'",col.COLUMN_COMMENT,"'",";") change_column_type from information_schema.COLUMNS col join information_schema.tables tbl on col.TABLE_SCHEMA=tbl.TABLE_SCHEMA and col.TABLE_NAME=tbl.TABLE_NAME where col.TABLE_SCHEMA='dwzx' and tbl.TABLE_TYPE='BASE TABLE' ;
?
轉載于:https://www.cnblogs.com/zejin2008/p/5133858.html
總結
以上是生活随笔為你收集整理的mysql批量生成修改表和列注释语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何选择企业数据加密软件?
- 下一篇: 安装并使用达梦数据库