Как получить все подробности о MySQL таблицы с помощью C #? - PullRequest
5 голосов
/ 19 апреля 2009

Я хочу получить эту информацию для таблицы MySQL, используя c #

1) Полные определения столбцов, включая имя, размер и тип данных, и дополнительную информацию, такую ​​как ноль / не ноль, без знака, автоинкремент, значения по умолчанию, если тип данных enum, допустимые значения

2) Все ограничения - первичные / внешние / чеки / уникальные

3) Все индексы

Я могу получить основную информацию, относящуюся к столбцам, используя запрос «описать имя_таблицы» к базе данных.

а как получить всю эту информацию?

С уважением, Anjan

Ответы [ 2 ]

6 голосов
/ 19 апреля 2009

просто выбросить запросы против INFORMATION_SCHEMA ...

Например, чтобы получить определения столбцов:

SELECT   TABLE_NAME
       , COLUMN_NAME
       , DATA_TYPE
       , CHARACTER_MAXIMUM_LENGTH
       , CHARACTER_OCTET_LENGTH 
       , NUMERIC_PRECISION 
       , NUMERIC_SCALE AS SCALE
       , COLUMN_DEFAULT
       , IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS 

Посмотрите на таблицы информационной схемы , чтобы получить дополнительную информацию.

Надеюсь, это поможет.

2 голосов
/ 23 июня 2013

Вы можете использовать метод SqlDataReader.GetSchemaTable(), и это ответ только для вашего варианта 1), но это можно сделать, используя то же соединение с вашей схемой, , если в строке подключения установлен параметр базы данных (схемы) по умолчанию . (Вам не нужно создавать отдельное соединение со схемой INFORMATION_SCHEMA).

Более подробную информацию об этом методе можно найти здесь и пример использования здесь .

Чтобы получить все о вашей схеме или базах данных, используйте SqlClientMetaDataCollectionNames class.

Более подробную информацию о классе можно найти здесь и пример использования здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...