mysql添加表注释、字段注释、查看与修改注释
⼀.基础知识
郭沫若的简介1.创建表的时候写注释
create table test1
(
field_name int comment '字段的注释'
)comment='表的注释';
2.修改表的注释
alter table test1 comment '修改后的表的注释';吆喝
3.修改字段的注释
下凡尘
alter table test1 modify column field_name int comment '修改后的字段注释';
-
-注意:字段名和字段类型照写就⾏
ifyou音译4.查看表注释的⽅法
--在⽣成的SQL语句中看
兰辉
避重就轻的意思是什么意思show create table test1;
--在元数据的表⾥⾯看
u information_schema;
lect * from TABLES where TABLE_SCHEMA='my_db' and TABLE_NAME='test1' \G
5.查看字段注释的⽅法
--show
show full columns from test1;
--在元数据的表⾥⾯看
桦树
lect * from COLUMNS where TABLE_SCHEMA='my_db' and TABLE_NAME='test1' \G
⼆.引申知识
1.使⽤alter table⽅法
ALTER TABLE table_name MODIFY COLUMN column_name TINYINT(tinyint表⽰column类型) COMMENT '-1:默认值,1:⼈员id,2:公司id';
这种⽅法会重建表,如果数据量⼤,⼀个表100w数据,执⾏1min,如果分表数30个那就总共需要执⾏30min
2.使⽤元数据表
USE information_schema;
UPDATE COLUMNS t lumn_comment = '-1:默认值,1:⼈员id,2:公司id' WHERE t.TABLE_SCHEMA='databa_name' AND t.table_name='table_n 查询语句,更新前可以查询⼀下
lumn_comment FROM COLUMNS t WHERE t.TABLE_SCHEMA='databa_name' AND t.TABLE_NAME='table_name' AND t.COLUMN_NAM
本想这种修改元数据的⽅法可以修改表的字段注释,但是没有权限执⾏,错误如下:
错误代码: 1044
Access denied for ur 'usr'@'%' to databa 'information_schema'
官⽅解释:
INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在
INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,⽽不是基本表,因此,你将⽆法看到与之相关的任何⽂件。
每位MySQL⽤户均有权访问这些表,但仅限于表中的特定⾏,在这类⾏中含有⽤户具有恰当访问权限的对象。
事实上,尽管不需要⽣成名为INFORMATION_SCHEMA的⽂件,我们仍提供了名为INFORMATION_SCHEMA的新数据库。可以使⽤USE语句将INFORMATION_SCHEMA选择为默认数据库,但访问该数据库中所含表的唯⼀⽅式是使⽤SELECT语句。不能在其中插⼊内容,不能更新它们,也不能删除其中的内容。
⽹摘:
Mysql没有Oracle那么⽅便,修改注释的时候需要指定{type}(这是Mysql设计的不合理性!);系统数据字典表COLUMNS中有保存所有表的字段信息,但是系统字典表是只读的,⽆法修改注释;
所以,Mysql修改注释必须按照上⾯的格式对不同类型做判断,并且带有长度的字段必须指明length与decimals,否则更新注释的时候会修改length,decimals为默认值的;
修改Mysql注释是件⿇烦的事情,但是也只能这样了。
3.难道就没有别的⽅法了?
当对于⼀个⼤表进⾏ALTER TABLE的时候,性能问题就产⽣了。MySQL⼤部分改动的步骤如下:根据新的表结构创建⼀个空表,从旧表中把数据取出来插⼊到新表中,在删除旧表。这是个⾮常漫长的过程。许多⼈ALTER TABLE之后,都有等待1⼩时或者1天的痛苦经历。
你可以这样,新建⼀个表,改变那个列的comment,然后原始实例关闭,替换.frm⽂件,再重启。
>元宵节灯笼图片