MySQL 给已存在的数据表 增加字段和注释

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开始

注意:此操作会锁全表,生产环境慎用!!!