博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 表和列的注释
阅读量:5127 次
发布时间:2019-06-13

本文共 4958 字,大约阅读时间需要 16 分钟。

像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能。对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要。

注释的添加

注释的添加是通过在定义表或列的时候在末尾加上 COMMENT 关键字来实现的,最长支持 1024 个字符。

可以在创建表的时候为表和列添加相应的注释。

CREATE TABLE test_comment   (      id   SERIAL PRIMARY KEY,      col1 INT comment '列的注释'   ) comment '表的注释';

执行上面的语句后创建了一个名为 test_comment 的表,并且为表和其中的 col1 列指定了相应的注释。

然后可通过 SHOW CREATE TABLE <table_name> 来查看。

mysql> SHOW CREATE TABLE test_comment\G*************************** 1. row ***************************       Table: test_commentCreate Table: CREATE TABLE `test_comment` (  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  `col1` int(11) DEFAULT NULL COMMENT '列的注释',  PRIMARY KEY (`id`),  UNIQUE KEY `id` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释'1 row in set (0.00 sec)

注释的查看

除了 SHOW CREATE TABLE <table_name> 语法,还有其他一些查看注释的方式。

SHOW TABLE STATUS 能够查看表的注释,其语法为:

SHOW TABLE STATUS WHERE name='table_name';

以下是通过 SHOW TABLE STATUS 查看的结果:

mysql> SHOW TABLE STATUS WHERE name='test_comment'\G*************************** 1. row ***************************           Name: test_comment         Engine: InnoDB        Version: 10     Row_format: Dynamic           Rows: 0 Avg_row_length: 0    Data_length: 16384Max_data_length: 0   Index_length: 16384      Data_free: 0 Auto_increment: 1    Create_time: 2019-05-11 15:41:01    Update_time: NULL     Check_time: NULL      Collation: utf8mb4_general_ci       Checksum: NULL Create_options:        Comment: 表的注释1 row in set (0.00 sec)

而通过 则可查看列的注释,其语法为:

SHOW FULL COLUMNS FROM 

以下是通过 SHOW FULL COLUMNS 查看的结果:

mysql>SHOW FULL COLUMNS FROM test_comment\G*************************** 1. row ***************************     Field: id      Type: bigint(20) unsigned Collation: NULL      Null: NO       Key: PRI   Default: NULL     Extra: auto_incrementPrivileges: select,insert,update,references   Comment:*************************** 2. row ***************************     Field: col1      Type: int(11) Collation: NULL      Null: YES       Key:   Default: NULL     Extra:Privileges: select,insert,update,references   Comment: 列的注释2 rows in set (0.00 sec)

借助 也能查看表或列的注释。

比如查看表的注释:

SELECT table_comment FROM   information_schema.tables WHERE  table_name = 'test_comment';

执行结果:

mysql> SELECT table_comment    -> FROM   information_schema.tables    -> WHERE  table_name = 'test_comment';+---------------+| TABLE_COMMENT |+---------------+| 表的注释      |+---------------+1 row in set (0.01 sec)

查看列的注释:

SELECT column_comment FROM   information_schema.columns WHERE  column_name = 'col1';

执行结果:

mysql> SELECT column_comment    -> FROM   information_schema.columns    -> WHERE  column_name = 'col1';+----------------+| COLUMN_COMMENT |+----------------+| 列的注释       |+----------------+1 row in set (0.00 sec)

注释的更新

对已经存在的表和列,可通过相应的更新修改操作来添加注释。

列注释的添加,更新

CHANGEMODIFY 等效,区别在于 CHANGE 重写定义列,需要书写完整的列定义,包括新的列名称,即使你并不想修改列的免,而 MODIFY 则不用指定新的列名称。

通过 CHANGE 语法:

mysql> ALTER TABLE test_comment CHANGE col1 col1 INT COMMENT '列的注释2';Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0

通过 MODIFY 语法:

mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '列的注释2';Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0

查看修改结果:

mysql> SHOW CREATE TABLE test_comment\G*************************** 1. row ***************************       Table: test_commentCreate Table: CREATE TABLE `test_comment` (  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  `col1` int(11) DEFAULT NULL COMMENT '列的注释2',  PRIMARY KEY (`id`),  UNIQUE KEY `id` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释'1 row in set (0.00 sec)

表注释的添加,更新

通过 ALTER TABLE 来完成对表注释的添加和更新。

mysql> ALTER TABLE test_comment comment '表的注释2';Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0

查看更新结果:

mysql> SHOW CREATE TABLE test_comment\G*************************** 1. row ***************************       Table: test_commentCreate Table: CREATE TABLE `test_comment` (  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  `col1` int(11) DEFAULT NULL COMMENT '列的注释2',  PRIMARY KEY (`id`),  UNIQUE KEY `id` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释2'1 row in set (0.00 sec)

注释的删除

更新注释时指定为空即可。

mysql> ALTER TABLE test_comment COMMENT '';Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '';Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0

查看删除结果:

mysql> SHOW CREATE TABLE test_comment\G*************************** 1. row ***************************       Table: test_commentCreate Table: CREATE TABLE `test_comment` (  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  `col1` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `id` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci1 row in set (0.00 sec)

相关资源

转载于:https://www.cnblogs.com/Wayou/p/mysql_comments_for_table_and_column.html

你可能感兴趣的文章
Xiph开源项目的相关问题-VORBIS音频解析
查看>>
PHP 布尔类型
查看>>
【模板】线段树 主席树
查看>>
例2-5+2-6
查看>>
作业5
查看>>
PHP定时执行任务的3种方法详解
查看>>
AD16 快速原理图封装导出
查看>>
CentOS 6 安装HBase集群教程
查看>>
linux日常管理-xarge_exec
查看>>
Cocos2d JS 之消灭星星(三) 进入游戏过渡场景
查看>>
豆瓣的账号登录及PHP api操作
查看>>
R12.2常用手册
查看>>
jQuery工具函数
查看>>
Linux 认证
查看>>
Python----查询内存地址、小数据池、编码
查看>>
jdk学习之路--jvm垃圾回收
查看>>
基于物联网实现的智能物流系统
查看>>
Page3:组合系统状态空间输入输出描述、矩阵指数函数性质[Linear System Theory]
查看>>
Shader1.0学习笔记之SetTexture
查看>>
数据结构学习-数组A[m+n]中依次存放两个线性表(a1,a2···am),(b1,b2···bn),将两个顺序表位置互换...
查看>>