Все ли СУБД имеют словарь данных, сопоставимый с тем, что есть у Oracle? - PullRequest
1 голос
/ 16 августа 2010

Можно ли получить информацию, такую ​​как:

  • таблицы
  • индексы со столбцами, которые они индексируют
  • столбцы в каждой таблице вместе с их типами
  • ограничения, такие как уникальные ключи, внешние ключи, не нулевыеПредположим, что это возможно для большинства других.Есть ли важные исключения из этого?

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

Для многих баз данных вы можете использовать таблицы INFORMATION_SCHEMA:

SELECT *
FROM INFORMATION_SCHEMA.Columns

и аналогичные варианты выбора для другой информации, такой как индексы и отношения.

Согласно этой ссылке :

  • Microsoft SQL Server - поддерживается в версии 7 и выше
  • MySQL - поддерживается в версии 5 и выше
  • PostgreSQL - поддерживается в версии 7.4 и выше
  • Oracle - не поддерживается
  • Apache Derby - НЕ поддерживается Начиная с версии 10.3
0 голосов
/ 16 августа 2010

Когда Кодд сформулировал свои знаменитые 12 правил, которые были предназначены в качестве критерия для «измерения отношения» некоторой данной системы СУБД, одним из этих правил было (что-то вроде того), что «информация метаданных должна запрашиваться пользователем используя те же средства, что и для запроса самих данных ".

Это происходит около 30 лет назад, поэтому трудно представить, что система действительно осмелилась бы назвать себя «реляционной» сегодня, если бы она не соответствовала этому «рецепту», особенно потому, что она не сложна. на все, чтобы встретиться.

0 голосов
/ 16 августа 2010

Возможно, но подробности как сделать это будут варьироваться от одной СУБД к другой.Лучше всего прочитать руководство к системе, с которой вы работаете.

...