代码改变世界

MySQL 中获取用户表、用户视图、用户表中列信息

  音乐让我说  阅读(1048)  评论(0编辑  收藏  举报

直接贴代码了:

复制代码
    /// <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

 

谢谢浏览!

点击右上角即可分享
微信分享提示