【问题标题】:Database documentation with MySQL WorkbenchMySQL Workbench 的数据库文档
【发布时间】:2014-06-05 21:35:49
【问题描述】:

我正在使用 MySQL Workbench 5.2.37,我发现它是数据库开发的绝佳工具。

我确实创建了所有表格、字段和关系,并且我还创建了文档(为每个字段及其功能添加注释,关系和表格也是如此)。

我只想导出此文档。我的意思是,不是 SQL 脚本,而是我为表及其字段放置的元数据。

类似:

表:客户

评论:代表系统的客户

字段:

id (INTEGER not null, unique):客户唯一标识符

name (VARCHAR[100] not null, unique):客户名称

...

有人知道是否可以提取这样的报告吗?

【问题讨论】:

    标签: mysql-workbench


    【解决方案1】:

    我猜你有 MySQL Workbench 的社区版?

    我认为通过 CREATE 语句记录数据库与您想要实现的目标非常接近。

    选择架构中的所有表(SQL 编辑器视图),右键单击并选择“发送到 SQL 编辑器”-> 创建语句。

    然后您可以保存一个包含数据库中每个表的文件。

    例子:

    CREATE TABLE `country` (
      `Code` char(3) NOT NULL DEFAULT '',
      `Name` char(52) NOT NULL DEFAULT '',
      `Continent` enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL DEFAULT 'Asia',
      `Region` char(26) NOT NULL DEFAULT '',
      `SurfaceArea` float(10,2) NOT NULL DEFAULT '0.00',
      `IndepYear` smallint(6) DEFAULT NULL,
      `Population` int(11) NOT NULL DEFAULT '0',
      `LifeExpectancy` float(3,1) DEFAULT NULL,
      `GNP` float(10,2) DEFAULT NULL,
      `GNPOld` float(10,2) DEFAULT NULL,
      `LocalName` char(45) NOT NULL DEFAULT '',
      `GovernmentForm` char(45) NOT NULL DEFAULT '',
      `HeadOfState` char(60) DEFAULT NULL,
      `Capital` int(11) DEFAULT NULL,
      `Code2` char(2) NOT NULL DEFAULT '',
      PRIMARY KEY (`Code`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1$$
    
    
    delimiter $$
    
    CREATE TABLE `countrylanguage` (
      `CountryCode` char(3) NOT NULL DEFAULT '',
      `Language` char(30) NOT NULL DEFAULT '',
      `IsOfficial` enum('T','F') NOT NULL DEFAULT 'F',
      `Percentage` float(4,1) NOT NULL DEFAULT '0.0',
      PRIMARY KEY (`CountryCode`,`Language`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1$$
    

    如果您碰巧拥有标准版(商业版),那么有些功能可能就在您身边:

    http://www.mysql.com/products/workbench/features.html

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。 我使用 information_schema 数据库从使用的数据库中提取元数据。 您可以使用表格: TABLES - 关于服务器中所有表的元数据。 KEY_COLUMN_USAGE - 关于所有使用的键的元数据。 COLUMNS - 所有列的元数据。

      你可以在那里得到很多信息,如果你有评论的列和表格,你也可以得到你的 cmets。 要从选定数据库的基表中获取内容,您可以运行此查询。请注意,我选择了一些满足我需求的字段。

      要从选定的数据库中获取有关表的信息,您可以运行以下命令:

      SELECT TABLE_NAME, TABLE_COMMENT FROM TABLES WHERE TABLE_SCHEMA = 'database_schema' AND TABLE_TYPE = 'BASE TABLE'
      

      要从选定表中获取有关列的信息,您可以运行以下命令:

      SELECT COL.COLUMN_NAME,COL.COLUMN_COMMENT,COL.COLUMN_TYPE,COL.IS_NULLABLE
        FROM COLUMNS COL LEFT JOIN KEY_COLUMN_USAGE KCU
        ON COL.TABLE_NAME = KCU.TABLE_NAME AND COL.COLUMN_NAME = KCU.COLUMN_NAME
        WHERE COL.TABLE_SCHEMA = 'database_schema' AND COL.TABLE_NAME = 'table_name'
        ORDER BY COL.TABLE_NAME,COL.ORDINAL_POSITION ,COL.COLUMN_NAME
      

      【讨论】:

        猜你喜欢
        • 2016-08-26
        • 2012-10-12
        • 2019-04-02
        • 2013-11-12
        • 2012-10-12
        • 2013-05-30
        • 2011-04-06
        • 2011-09-18
        • 2013-06-17
        相关资源
        最近更新 更多