mysqlバッチ生成修正テーブルとカラムコメント文
10249 ワード
1つのデータベースで完全な注意を変更した後、別のサーバ上のデータベースに一括実行文を生成する必要があります.操作を容易にし、changeまたはmodifiedで列の属性を変更することに注意します.完全に書かないと、他の属性が失われます.
t_usersテーブルにはフィールドnameコメント名が名前で、デフォルト値は0です.alter table t_を使用するとusers change column name name varchar(10) ;するとコメント名が消え、デフォルト値も消えます.したがって,次の文により完了したalter文を生成することができる.
テーブルの生成コメント文の変更
列変更の生成
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' ;