一.基础知识
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方法
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 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 ';
查询语句,更新前可以查询一下
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 ';
本想这种修改元数据的方法可以修改表的字段注释,但是没有权限执行,错误如下:
错误代码: 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实体添加字段注释和表注释,以提高代码可读性和维护性。标题提到的问题“解决CodeSmith生成mysql实体没有字段注释和表注释”正是针对这一需求。 首先,让我们...
清空表和字段所有的注释信息,主要用于发布数据库时使用。
在本文中,我们将深入探讨如何解决在使用CodeSmith 8.0时遇到的MySQL实体没有字段注释和表注释的问题,以及如何进行相关设置。 首先,问题的症结在于CodeSmith在生成代码时未能正确地读取并映射MySQL数据库中的表...
powerdesigner逆向工程导入mysql脚本生成PDM带全注释
在描述中提到的问题是关于CodeSmith 8.0版本在生成MySQL数据库实体时,无法正确地包含字段注释和表注释,这对于代码的可读性和维护性是至关重要的。下面将详细介绍如何解决这个问题。 首先,我们需要理解CodeSmith...
动软代码生成器针对MySQL数据库提供了字段注释生成的功能,使得数据库表结构的说明更加清晰,便于团队协作和后续的代码维护。 一、MySQL字段注释生成的意义 在MySQL数据库中,每个字段都有可能包含特定业务含义或...
PowerDesigner 导出的 SQL 带列注释,导入到 MySQL 中列注释不见了的处理方法 在使用 PowerDesigner 导出 SQL 文件时,如果包含列注释,可能会在导入到 MySQL 数据库中时丢失。这是因为 PowerDesigner 导出的 SQL ...
例如,你可以定义函数或过程,遍历模型中的每个表和列,检查是否存在注释,如果没有,则从其他来源(如数据库元数据或额外的文本文件)获取注释信息,并添加到PowerDesigner的模型中。 在完成所有必要的调整后,...
### PowerDesigner连接MySQL互相导入及显示中文注释详解...通过以上步骤,您可以顺利完成PowerDesigner与MySQL之间的连接、表结构的双向导入以及中文注释的处理。这对于数据库设计和维护工作来说是非常实用的操作流程。
Activiti 5.22.0数据库表结构添加中文注释MySQL脚本,内含3个脚本,分别是: 1、21张表全部表和字段中文注释和取值说明建表脚本(单SQL文件) 2、21张表全部表和字段中文注释和取值说明添加注释脚本(单SQL文件) 3...
1 创建带解释的表 CREATE TABLE groups( gid INT PRIMARY KEY AUTO_INCREMENT COMMENT '设置主键自增', gname VARCHAR(200) COMMENT '列注释' ) COMMENT='\u8868\u6ce8\u91ca';...4查看整个表的结构 SHOW CREATE
本文将详细介绍如何在MySQL中为表和字段添加、修改以及查看注释。 1. **创建表时写注释** 当我们创建一个新的表时,可以使用`COMMENT`关键字来添加注释。以下是一个创建带有注释的表`test`的示例: ```sql ...
官方的CodeSmith无法读取MySql的字段注释,column.Description为空,本程序可以读到。将附件的中的dll替换 %CodeSmith安装目录%\CodeSmith\v6.5\SchemaProviders\ 文件夹下的SchemaExplorer.MySQLSchemaProvider.dll...
1、加字段: alter table 表名 ADD 字段名 类型; eg: alter table sys_cwzd ...添加新字段: alter table bulletin add citycode varchar(6) not null default 0; # 城市代码 1.创建数据库时设置编码 create databa
《CodeSmith8.0与MySQL、PostgreSQL数据库字段注释修复指南》 CodeSmith8.0是一款强大的代码生成工具,它能帮助开发者自动生成各种编程语言的代码,提高开发效率。然而,在使用过程中,可能会遇到一个问题,即在...
COMMENT`语句添加表注释;在Oracle中,可以使用`COMMENT ON TABLE`命令来实现相同功能。 生成Word文档的过程可能涉及到编程和数据库查询。可以使用Java这样的编程语言,配合数据库连接驱动(如压缩包中的mysql-...
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
"清除表和字段注释信息语句.rar"这个压缩包提供的就是一组SQL语句,旨在帮助用户完成这一任务。 首先,我们需要理解SQL中的注释是如何添加的。在SQL中,单行注释通常使用"--"开始,直到行尾;多行注释则使用"/*...
mysql导出工具,可导出无注释插入语句,表中字段有blob类数据,插入语句前还有锁表操作语句,适合多种场景