持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
前言
- 数据库设计不可能在初期完成,为什么这么说呢?因为随着业务的发展慢慢的数据库结构就无法满足我们的需求了,所以修改数据库结构时必不可少的。
- 那么你是如何修改数据库结构的?相信大多数都是通过Navicat进行修改的,我想这样修改效率太低了。或者说不哟优雅
命令修改
- 针对单个数据库修改通过可视化工具修改无疑是最好的选择,但是企业内不可能就一套数据库吧。最起码得有两套环境,测试环境,线上环境。那么每次都通过可视化工具修改无疑会造成两边不同步。
- 而我今天要说的是通过 命令进行修改数据库结构,这样我们只需要将命令写好分别在两个数据库中执行,这样不需要认为的区执行就能保证两套环境最终一致性
如何修改
1. 表名发生变化
- 我之前遇到一次公司要求将所有表名进行统一管理,必须添加前缀,如果通过工具来改无疑需要加班的。但是通过命令就不一样了。
alter table 表名 rename to 新的表名;
2. 修改表的字符集
- 刚毕业那会数据库编码被自己搞错了。后来发现命令也是如此的方便。
alter table 表名 character set 字符集名称;
3. 修改字段名称和 类型
alter table 表名 change 字段名 新字段 新数据类型; -- 修改列的字段名和类型
alter table 表名 modify 字段名 新数据类型;-- 只能修改列的类型
增加
1. 添加字段
- 加字段是最常见的,没有之一,有的时候业务扩展就必须搭配添加字段进行。
alter table 表名 add 字段名 数据类型;
-
单个增加
alter table tt add phone VARCHAR(125) NULL DEFAULT NULL COMMENT '联系电话';
-
批量增加(用逗号隔开)
****alter table tt add (id VARCHAR(125) NULL DEFAULT NULL COMMENT 'id', phone VARCHAR(125) NULL DEFAULT NULL COMMENT '商家联系电话');
-
添加在某字段后面(after)
-
有的时候我想修改字段的必填属性,但是我不会,那么你可以先drop字段在add字段,这个时候add为了不被别人发现就需要add 到原来的位置,after bofore 就能帮助你了。
alter table tt add sex CHAR(8) not null afterage;
-
添加在第一列(first)
alter table tt add sex CHAR(8) not null first;