Есть ли команда SQL, которая будет перечислять все таблицы в базе данных и которая независима от поставщика (работает на MSSQLServer, Oracle, MySQL)?Список всех таблиц в базе данных
ответ
Ближайшая опция - запросить INFORMATION_SCHEMA
для таблиц.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
INFORMATION_SCHEMA
является частью стандарта SQL, но не все поставщики поддерживают его. Насколько я знаю, единственные производители СУБД, которые поддерживают его являются:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Некоторые бренды базы данных, например, Oracle, IBM DB2, Firebird, Derby и т. Д. Имеют похожие представления «каталога», которые предоставляют вам интерфейс, в котором вы можете запрашивать метаданные в системе. Но имена представлений, содержащихся в них столбцов и их отношения не соответствуют стандарту ANSI SQL для INFORMATION_SCHEMA
. Другими словами, подобная информация доступна, но запрос, который вы использовали бы для получения этой информации, отличается.
(сноска: мнения каталога в IBM DB2 UDB для System I отличается от представления каталога в IBM DB2 UDB для Windows/* NIX - так много для Юниверсала в UDB)
Некоторые другие бренды (например, SQLite) вообще не предлагают какого-либо надежного интерфейса для метаданных.
Нет. Они все любят делать это по-своему.
Нет, стандарт SQL не ограничивает имена имен таблиц (если вообще), поэтому вам придется выполнять разные операторы (обычно SELECT
операторов на специально названных таблицах) в зависимости от механизма SQL, который вы используете имеющий дело с.
Как Билл Karwin правильно указывает, INFORMATION_SCHEMA является частью стандарта SQL-92. Некоторые поставщики могут не поддерживать его, но он является частью стандарта. –
Если все в порядке с использованием не-SQL подхода и у вас есть драйвер ODBC для базы данных и он реализует SQLTables точку входа, вы возможно могли бы получить информацию, которую вы хотите!
pjjH
детали по API по адресу: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. Получить список всех таблиц в базе данных
- 2. Список всех таблиц в базе данных
- 3. список таблиц в базе данных
- 4. список всех таблиц в базе данных с MySQLi
- 5. Запрос всех таблиц в базе данных
- 6. Список таблиц в базе данных mysql
- 7. Список содержимого таблиц в базе данных
- 8. Обновление всех таблиц в базе данных
- 9. Список недавно обновленных таблиц в базе данных
- 10. Список непустых таблиц в базе данных MySQL
- 11. Хронологический список таблиц в базе данных MySQL
- 12. Список всех пользователей в конкретной базе данных
- 13. Список всех триггеров в базе данных
- 14. Список всех таблиц в Hibernate
- 15. Список всех таблиц данного пользователя в Oracle
- 16. Список всех запросов к базе данных
- 17. Переименовать столбец для всех таблиц в базе данных mysql
- 18. PostgreSQL - Иерархический список всех таблиц
- 19. Размер всех индексов в базе данных mysql
- 20. Поиск всех таблиц в базе данных и возврат значения?
- 21. Как сгенерировать изменение RethinkDB для всех таблиц в базе данных
- 22. Заглавная буква из всех таблиц в базе данных
- 23. выбор первого столбца из всех таблиц в базе данных mysql
- 24. Получить количество всех таблиц и представлений в базе данных
- 25. Обновление значения AUTO_INCREMENT всех таблиц в базе данных MySQL
- 26. Данные TRUNCATE из всех таблиц в базе данных
- 27. Добавить после запуска обновления для всех таблиц в базе данных
- 28. Reseed Primary Keys из всех таблиц в базе данных
- 29. распечатать все записи всех таблиц в базе данных оракула
- 30. Создать таблицу с контрольной суммой всех таблиц в базе данных?
Я собирался ответить и сказать «Нет, абсолютно нет». Ваш ответ спас меня. Сегодня я узнал что-то новое :) – wcm
Я добавил ссылки на документы для INFORMATION_SCHEMA в соответствующие бренды RDBMS, которые его поддерживают. –