sql添加注釋語句,mysql添加表注釋、字段注釋、查看與修改注釋

 2023-11-16 阅读 19 评论 0

摘要:mysql 一.基礎知識 1.創建表的時候寫注釋 create table test1 ( field_name int comment ‘字段的注釋’ )comment=‘表的注釋’; 2.修改表的注釋 alter table test1 comment ‘修改后的表的注釋’; 3.修改字段的注釋 alter table test1 modify column field_name int com

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

sql添加注釋語句、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.使用元數據表

MySQL增刪改查語句。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’

MySQL注釋?官方解釋:

INFORMATION_SCHEMA是信息數據庫,其中保存著關于MySQL服務器所維護的所有其他數據庫的信息。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,你將無法看到與之相關的任何文件。

每位MySQL用戶均有權訪問這些表,但僅限于表中的特定行,在這類行中含有用戶具有恰當訪問權限的對象。

事實上,盡管不需要生成名為INFORMATION_SCHEMA的文件,我們仍提供了名為INFORMATION_SCHEMA的新數據庫。可以使用USE語句將INFORMATION_SCHEMA選擇為默認數據庫,但訪問該數據庫中所含表的唯一方式是使用SELECT語句。不能在其中插入內容,不能更新它們,也不能刪除其中的內容。

網摘:

Mysql沒有Oracle那么方便,修改注釋的時候需要指定{type}(這是Mysql設計的不合理性!);系統數據字典表COLUMNS中有保存所有表的字段信息,但是系統字典表是只讀的,無法修改注釋;

sql添加注釋、所以,Mysql修改注釋必須按照上面的格式對不同類型做判斷,并且帶有長度的字段必須指明length與decimals,否則更新注釋的時候會修改length,decimals為默認值的;

修改Mysql注釋是件麻煩的事情,但是也只能這樣了。

3.難道就沒有別的方法了?

當對于一個大表進行ALTER TABLE的時候,性能問題就產生了。MySQL大部分改動的步驟如下:根據新的表結構創建一個空表,從舊表中把數據取出來插入到新表中,在刪除舊表。這是個非常漫長的過程。許多人ALTER TABLE之后,都有等待1小時或者1天的痛苦經歷。

你可以這樣,新建一個表,改變那個列的comment,然后原始實例關閉,替換.frm文件,再重啟。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/173576.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息