alter table 修改表结构规范

 

 

use database_name;

alter table table_name change field_name_old field_name_new varchar(256) NOT NULL COMMENT '五级分类名', ADD INDEX index_name ( `name` (32)), ADD INDEX index_time ( `timeId` );

 

 

 


# 添加主键:
alter table table_name add primary key(id);
alter table table_name add primary key(user,host,db);
# 单列主键
# 多列联合主键

 

 


# 添加唯一索引:
alter table table_name add unique uq_name(column_name_one,column_name_two);

 

# 添加普通索引:
alter table table_name add index uq_name(column_name_one,column_name_two);

 

 

# 其中的column关键字可以省略。
# 添加新列到最后面
alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something'; # 添加新列到最前面 alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something' first; # 添加新列到指定列后面 alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something' after column_name_other;

 

 

# 其中的column关键字可以省略。
# 删除某列
alter table table_name drop column column_name;

 

 

 

 

 

 

# 修改列名称或列其他信息。可修改列名称、列类型、列参数。
alter table table_name change column_name_old column_name_new varchar(64) not null default '' comment '注释';

# 仅仅调整列的顺序
alter table table_name change column_name column_name varchar(255) not null default '0' comment 'comment something' after column_name_other;

# modify只能修改列类型和列参数,不能修改列名称。 
alter table table_name modify column_name varchar(64) not null default '' comment '注释';

 

 

 

 

 


# 修改表的名称:
alter table table_name_old rename to table_name_new;

 

# 修改表的存储引擎:
alter table table_name engine=MyISAM;

 

 修改字符集:

# 修改库的字符集和排序规则:
mysql
>> alter database db_name default character set utf8mb4 collate utf8_general_ci; # 修改表的默认字符集和排序规则,同时还将表现有的所有列更改为新的字符集和排序规则:
mysql
>> alter table t_pass_result convert to character set utf8mb4 collate utf8_general_ci; # 只修改表的默认字符集和排序规则,不会更改表现有列的字符集和排序规则:
mysql
>> alter table tbl_name default character set utf8mb4 collate utf8_general_ci; # 修改列的字符集和排序规则:
mysql
>> alter table tbl_name change col_name col_name varchar(256) character set utf8mb4 collate utf8_general_ci;

 

查看字符集:

# 查看库的默认字符集和排序规则:

mysql>> show create database db_name;

# 查看库的默认字符集和排序规则:

mysql>> show create table tbl_name;

# 查看库的默认字符集和排序规则:

mysql>> show full columns from tbl_name;

# 也可以通过查询系统表:

mysql>> select character_set_name from information_schema.columns;

 

 


# 修改表的行记录格式:
alter table table_name row_format=compressed;

 

# 修改表的自增初始值:

alter table table_name auto_increment=100;

 

# 修改表的注释:

alter table table_name comment='注释修改';

 

 

# 删除主键:

alter table table_name drop primary key;

# 不管是单列主键还是多列复合主键,都是这个语句。
# 但是如果主键自增类型,则需要先将其自增属性去掉,alter table table_name modify column_name_old column_name_new type;

 

 


# 删除外键:
alter table table_name drop foreign key key_name;

 

#

#########################

 
posted @ 2019-10-14 18:14  igoodful  阅读(1213)  评论(2编辑  收藏  举报