失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql添加表注释 字段注释 查看与修改注释

mysql添加表注释 字段注释 查看与修改注释

时间:2023-07-14 12:24:05

相关推荐

mysql添加表注释 字段注释 查看与修改注释

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 ‘修改后的字段注释’;

–注意:字段名和字段类型照写就行

4.查看表注释的方法

–在生成的SQL语句中看

show create table test1;

–在元数据的表里面看

use information_schema;

select * from TABLES where TABLE_SCHEMA=‘my_db’ and TABLE_NAME=‘test1’ \G

5.查看字段注释的方法

–show

show full columns from test1;

–在元数据的表里面看

select * from COLUMNS where TABLE_SCHEMA=‘my_db’ and TABLE_NAME=‘test1’ \G

二.引申知识

1.使用alter table方法

Sql代码 收藏代码

ALTER TABLE table_name MODIFY COLUMN column_name TINYINT(tinyint表示column类型) COMMENT '-1:默认值,1:人员id,2:公司id';

这种方法会重建表,如果数据量大,一个表100w数据,执行1min,如果分表数30个那就总共需要执行30min

2.使用元数据表

Sql代码 收藏代码

USE information_schema; UPDATE COLUMNS t SET t.column_comment = '-1:默认值,1:人员id,2:公司id' WHERE t.TABLE_SCHEMA='database_name' AND t.table_name='table_name' AND t.COLUMN_NAME='column_name ';

查询语句,更新前可以查询一下

Sql代码 收藏代码

SELECT t.column_comment FROM COLUMNS t WHERE t.TABLE_SCHEMA='database_name' AND t.TABLE_NAME='table_name' AND t.COLUMN_NAME='column_name ';

本想这种修改元数据的方法可以修改表的字段注释,但是没有权限执行,错误如下:

Text代码 收藏代码

错误代码: 1044 Access denied for user ‘usr’@’%’ to database

‘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文件,再重启。

如果觉得《mysql添加表注释 字段注释 查看与修改注释》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。