公司今天有个需求,需要给所有涉及公司表的数据库添加两个新的字段。
我打开数据表一看,发现这个事情不简单。由于系统比较成熟,总共有100多个表,如果我一个个打开,并在后面添加字段,那怕是要废了。
这个时候就想到用SQL语句:
只要把数据表名定义成变量,批量生成SQL语句再执行,应该是效率比较高的。
基础知识
一个完整的字段包括字段名、数据类型和约束条件。
MySQL 添加字段的语法共有三种,支持在不同的位置添加:
在末尾添加字段:
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
在开头添加字段:
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
在中间添加字段:
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
对语法格式的说明如下:
- <表名> 为数据表的名字;
- <新字段名> 为所要添加的字段的名字;
- <数据类型> 为所要添加的字段能存储数据的数据类型;
- [约束条件] 是可选的,用来对添加的字段进行约束。
好的,以上基础知识讲完,不懂的可以参考下我这次用到的案例。
参考案例
只要把这段代码放到数据库管理软件中执行SQL语句,即可快速完成字段的插入(表名改成自己的)
ALTER TABLE `accident_incident` ADD `regulatory_id` int DEFAULT NULL COMMENT '监管方id';
ALTER TABLE `accident_incident` ADD `regulatory_name` char(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '监管方名字';