我使用的是MySQL Workbench 5.2.37,我发现它是一个很棒的数据库开发工具。
我确实创建了所有的表、字段和关系,我还创建了文档(为每个字段及其功能添加注释,关系和表也是如此)。
我只想导出这个文档。我的意思是,不是SQL脚本,而是我为表及其字段设置的元数据。
类似于:
表:客户
评论:代表系统的客户
字段:
id (INTEGER not null,unique )客户唯一标识
名称(VARCHAR100非空,唯一):客户名称
..。
有没有人知道提取这样的报告是可能的?
发布于 2012-03-23 15:19:29
我猜你有MySQL工作台的社区版吧?
我认为通过CREATE语句对数据库进行文档化将足够接近您所要实现的目标。
选择方案中的所有表(SQL编辑器视图),右键单击并选择‘发送到SQL编辑器’-> Create语句。
然后,您可以保存一个由数据库中的每个表组成的文件。
示例:
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$$如果你碰巧有标准版(商业版),有一些功能可能就是你喜欢的:

发布于 2014-06-05 21:35:50
我也有同样的问题。我使用information_schema数据库从使用的数据库中提取元数据。您可以使用tables: TABLES -关于服务器中所有表的元数据。KEY_COLUMN_USAGE -有关使用的所有键的元数据。列-关于所有列的元数据。
你可以在那里得到很多信息,如果你有注释的列和表,你也可以得到你的评论。要从选定数据库的基表中获取内容,可以运行此查询。请注意,我选择了一些满足我需要的字段。
要从选定的数据库中获取有关表的信息,可以运行以下命令:
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_NAMEhttps://stackoverflow.com/questions/9313131
复制相似问题