MySQL 给已存在的数据表 增加字段和注释
修改表注释
ALTERTABLEtb_user COMMENT'用户信息表2';
ALTER TABLE
指定相应的数据库表
ADD
COLUMN `要新加的字段` varchar(64) null DEFAULT null comment '注释' after `已有字段`;
格式:
ALTER TABLE 【表名字】 ADD COLUMN【列名称】 【类型】(大小) NULL/NOT NULL DEFAULT “默认数据” COMMENT ‘注释说明’
第一个null/not null 意思是 此字段可为null/不可为null。
after为新字段放在某个字段之后。
ALTER TABLE t_user ADDCOLUMNauth INT(2) NOT NULL DEFAULT 2 COMMENT '角色,关联用户角色表t_role';
问题描述
在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段。
示例:在已存在的设备表device中,增加设备IP,设备名称,设备类型三个字段。
问题解决
方式1(命令行方式)
使用MySQL命令,在MySQL客户端工具或者命令行中,执行以下命令:
ALTERTABLEdeviceADDCOLUMN`device_ip`VARCHAR(32)DEFAULTNULLCOMMENT'设备IP';ALTERTABLEdeviceADDCOLUMN`device_name`VARCHAR(128)DEFAULTNULLCOMMENT'设备名称';ALTERTABLEdeviceADDCOLUMN`device_type`VARCHAR(32)DEFAULTNULLCOMMENT'设备类型';
或者
ALTERTABLEdeviceADDCOLUMN(`device_ip`VARCHAR(32)DEFAULTNULLCOMMENT'设备IP',
`device_name`VARCHAR(128)DEFAULTNULLCOMMENT'设备名称',
`device_type`VARCHAR(32)DEFAULTNULLCOMMENT'设备类型');
方式2(客户端工具方式)
使用 MySQL 的可视化工具,比如,SQLyog,Navicat。
右键点击 表名 --> 选择 设计表 --> 增加字段,填写相应的属性,保存即可。
以 Navicat 为例,效果如下:
MySQL在已存在的表中增加一个新字段
1. 注意
我们不会轻易在表中增加字段,这样会破坏原有的表结构;
在增加表字段时,除了指明字段名、类型等,还应该设置默认值和注释,方便他人阅读和维护;
增加字段的脚本一定要保留完好,方便更新程序时,添加附件并加以说明。
所有的字段名都应该小写(规范),如果你不想出现 I(i) 和 l(L) 分不清的情况。
2. 语法
ALTER TABLE <表名> ADD <新字段名><数据类型><约束条件><默认值><注释>;
3. 举个例子
ALTER TABLE t_user ADD auth INT(2) NOT NULL DEFAULT 2 COMMENT '角色,关联用户角色表t_role';
这样会默认在表的最后增加一个auth字段,如果你想在开头添加,你可以这样写:
ALTER TABLE t_user ADD auth INT(2) NOT NULL DEFAULT 2 COMMENT '角色,关联用户角色表t_role' FIRST;
在中间增加:
语法:
ALTER TABLE <表名> ADD <新字段名><数据类型><约束条件><默认值><注释>
AFTER<已有字段>;
ALTER TABLE t_user ADD auth INT(2) NOT NULL DEFAULT 2 COMMENT '角色,关联用户角色表t_role' AFTER id;
以上,如有纰漏,欢迎指正。
MySQL为已存在数据的表新增自增id字段
已有的mysql数据表,希望增加一个自增的字段,并设置新数据的初始值。
原本是想新建一个表,然后加上自增id字段,再把旧表导入,最后在把新表替换成旧表,但是这样非常麻烦。
后来发现有个语句可以直接添加自增主键:
ALTERTABLEtable_nameADDCOLUMNidint(11) NOTNULLAUTO_INCREMENTfirst,ADDprimaryKEY(id);
执行完后,会在原有的表的第一列添加自增主键,以1开始
注意:此操作会锁全表,生产环境慎用!!!
评论功能已关闭