MySQL Workbench的数据库文档

时间:2012-02-16 14:35:23

标签: mysql-workbench

我正在使用MySQL Workbench 5.2.37,我觉得它是一个很好的数据库开发工具。

我确实创建了所有表格,字段和关系,并且我也做了文档(为每个字段添加了注释,其功能与关系和表格相同)。

我想只导出这个文档。我的意思是,不是SQL脚本,而是我为表及其字段添加的元数据。

类似的东西:

表:客户

评论:代表系统的客户

字段:

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

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

...

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分: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$$

如果你碰巧有标准版(商业版),那么有些功能可能就在你的小巷里:

enter image description here

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