html node mysql sql 數據庫 post spa .net code orm 欄目 MySQL 简体版
原文   原文鏈接

mysql使用sql語句查詢數據庫全部表註釋已經表字段註釋(轉載)

 

場景:html

1. 要查詢數據庫 "mammothcode" 下全部表名以及表註釋node

/* 查詢數據庫 ‘mammothcode’ 全部表註釋 */
SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE table_schema='mammothcode';

 

2. 要查詢表字段的註釋mysql

/* 查詢數據庫 ‘mammothcode’ 下表 ‘t_adminuser’ 全部字段註釋 */
SELECT COLUMN_NAME,column_comment FROM INFORMATION_SCHEMA.Columns WHERE table_name='t_adminuser' AND table_schema='mammothcode'

 

3. 一次性查詢數據庫 "mammothcode" 下表註釋以及對應表字段註釋sql

SELECT t.TABLE_NAME,t.TABLE_COMMENT,c.COLUMN_NAME,c.COLUMN_TYPE,c.COLUMN_COMMENT FROM information_schema.TABLES t,INFORMATION_SCHEMA.Columns c WHERE c.TABLE_NAME=t.TABLE_NAME AND t.`TABLE_SCHEMA`='mammothcode'

 

 

擴展:使用存儲過程,對上面sql語句進行存儲,sql以下:數據庫

複製代碼
DELIMITER//  
DROP PROCEDURE IF EXISTS findComment//
CREATE PROCEDURE findComment (dbName VARCHAR(50))
BEGIN  
   DECLARE stmt VARCHAR(65535);  
   #若是用戶名長度大於0
   IF LENGTH(dbName)>0 THEN
     BEGIN
       SET @sqlstr=CONCAT('SELECT t.TABLE_NAME,t.TABLE_COMMENT,c.COLUMN_NAME,c.COLUMN_TYPE,c.COLUMN_COMMENT FROM information_schema.TABLES t,INFORMATION_SCHEMA.Columns c WHERE c.TABLE_NAME=t.TABLE_NAME AND t.`TABLE_SCHEMA`=','''',dbName,'''');
      END;
   ELSE
     BEGIN
      SET @sqlstr=CONCAT('SELECT ','''','數據庫名不能爲空','''', 'AS ','''','提示','''');
     END;
     END IF;
   PREPARE stmt FROM @sqlstr;
   EXECUTE stmt;
END//
DELIMITER ;
複製代碼

調用存儲過程:post

CALL findComment('xiyinli_test');

 

上面的存儲過程還能夠簡化:在存儲過程當中直接查詢當前使用的數據庫,以下:spa

複製代碼
DELIMITER//  
DROP PROCEDURE IF EXISTS findComment//
CREATE PROCEDURE findComment ()
BEGIN  
   DECLARE stmt VARCHAR(65535);  
   #查詢當前的 use-->database
   SET @dbName=(SELECT DATABASE());
     BEGIN
       SET @sqlstr=CONCAT('SELECT t.TABLE_NAME,t.TABLE_COMMENT,c.COLUMN_NAME,c.COLUMN_TYPE,c.COLUMN_COMMENT FROM information_schema.TABLES t,INFORMATION_SCHEMA.Columns c WHERE c.TABLE_NAME=t.TABLE_NAME AND t.`TABLE_SCHEMA`=','''',@dbName,'''');
      END;
   PREPARE stmt FROM @sqlstr;
   EXECUTE stmt;
END//
DELIMITER ;
複製代碼

調用:.net

CALL findComment();

 

轉載自:http://blog.csdn.net/cicon/article/details/51577655code

獲取表名及註釋:orm

select relname as tabname,cast(obj_description(relfilenode,'pg_class') as varchar) as comment from pg_class c 
where  relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%' order by relname

過濾掉分表:

加條件 and relchecks=0 便可

 

獲取字段名、類型、註釋、是否爲空:SELECT col_description(a.attrelid,a.attnum) as comment,format_type(a.atttypid,a.atttypmod) as type,a.attname as name, a.attnotnull as notnull   FROM pg_class as c,pg_attribute as a where c.relname = '表名' and a.attrelid = c.oid and a.attnum>0

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息