直接貼代碼了:
/// <summary> /// MySql 數據庫維護中心 /// </summary> public class MySqlDbMaintenance:DbMaintenanceProvider { /// <summary> /// 獲取視圖信息列表 Sql語句 /// </summary> protected override string GetViewInfoListSql => @"select TABLE_NAME as Name,TABLE_COMMENT as Description from information_schema.tables where TABLE_SCHEMA=(select database()) AND TABLE_TYPE='VIEW'"; /// <summary> /// 獲取數據表信息列表 Sql語句 /// </summary> protected override string GetTableInfoListSql => @"select TABLE_NAME as Name,TABLE_COMMENT as Description from information_schema.tables where TABLE_SCHEMA=(select database()) AND TABLE_TYPE='BASE TABLE'"; /// <summary> /// 根據數據庫表名獲取列信息 Sql語句 /// </summary> protected override string GetColumnInfosByTableNameSql { get { string sql = @"SELECT 0 as TableId, TABLE_NAME as TableName, column_name AS DbColumnName, CASE WHEN left(COLUMN_TYPE,LOCATE('(',COLUMN_TYPE)-1)='' THEN COLUMN_TYPE ELSE left(COLUMN_TYPE,LOCATE('(',COLUMN_TYPE)-1) END AS DataType, CAST(SUBSTRING(COLUMN_TYPE,LOCATE('(',COLUMN_TYPE)+1,LOCATE(')',COLUMN_TYPE)-LOCATE('(',COLUMN_TYPE)-1) AS signed) AS Length, column_default AS `DefaultValue`, column_comment AS `ColumnDescription`, CASE WHEN COLUMN_KEY = 'PRI' THEN true ELSE false END AS `IsPrimaryKey`, CASE WHEN EXTRA='auto_increment' THEN true ELSE false END as IsIdentity, CASE WHEN is_nullable = 'YES' THEN true ELSE false END AS `IsNullable` FROM Information_schema.columns where TABLE_NAME='{0}' and TABLE_SCHEMA=(select database()) ORDER BY TABLE_NAME"; return sql; } } }
代碼來自於:https://github.com/jianxuanbing/Bing
謝謝瀏覽!