Документация базы данных с MySQL Workbench - PullRequest
0 голосов
/ 16 февраля 2012

Я использую MySQL Workbench 5.2.37 и считаю его отличным инструментом для разработки баз данных.

Я создал все таблицы, поля и отношения, а также сделал документ (добавив комментарий для каждого поля с их функциями, то же самое для отношений и таблиц).

Я бы хотел экспортировать только эту документацию. Я имею в виду не сценарии SQL, а метаданные, которые я поместил для таблицы и ее полей.

Что-то вроде:

Таблица: Клиенты

Комментарий: представление клиентов системы

Поля:

id (INTEGER не нуль, уникальный): уникальный идентификатор клиента

имя (VARCHAR [100] не нулевое, уникальное): имя клиента

...

Кто-нибудь знает, возможно ли извлечь такой отчет?

Ответы [ 2 ]

2 голосов
/ 05 июня 2014

У меня была такая же проблема.Я использовал базу данных information_schema для извлечения метаданных из используемых баз данных.Вы можете использовать таблицы: 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_NAME
1 голос
/ 23 марта 2012

Я предполагаю, что у вас есть версия 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

...