mysql 主库表结构变更_MySQL修改表结构

MySQL使用alter table语法对表结构进行修改,比如添加字段,修改字段类型,删除字段,添加索引,删除索引,修改字符集等等,下面总结了一些常用的修改表结构示例。

一、修改字段

1、增加字段

alter table tb add column age int default 0 comment 'age';

2、在某个字段之后增加字段

alter table tb add column name varchar(50) default null comment 'name' after id;

3、增加字段,放在表字段的开头

alter table tb add column type varchar(50) default null comment 'type' first;

4、删除字段

alter table tb drop column type;

5、修改字段名称或者类型

alter table tb change age age_new int default 10 comment 'age_new';

6、修改字段类型

alter table tb modify age varchar(50);

change 与 modify区别在于change可以修改字段名称,也可以修改字段类型,而modify只能修改字段类型,不能修改名称。

二、修改索引

1、增加单列索引

alter table tb add index idx_name(name);

2、增加联合索引

alter table tb add index idx_name_age(name,age);

3、增加唯一索引

alter table tb add unique key uk_name(name);

4、增加主键

alter table tb add primary key(id);

5、删除主键

alter table tb drop primary key;

6、删除索引

alter table tb drop index idx_name;

7、修改索引名称

alter table tb rename index idx_name_age to idx_name_age_new;

三、修改字符集

1、修改数据库字符集

alter database db_new charset utf8mb4;

2、修改表字符集

alter table tb charset=utf8mb4;

3、修改表字符集和校验规则

alter table tb charset=utf8mb4 collate=utf8mb4_general_ci;

4、修改表字段的字符集和校验规则

alter table tb modify name varchar(50) character set utf8 collate utf8_general_ci;

注意:

对同一个表的多处表结构进行修改,可放到一个SQL里执行,避免在表数据量非常大的情况下,多次执行改表SQL,耗时长,影响正常数据库服务。

比如:增加两个字段

alter table tb add column c1 int;

alter table tb add column c2 int;

合并成一个SQL:

alter table tb add column c1 int, add column c2 int;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值