2014-02-13 5 views
2

Итак, у меня есть пара баз данных Firebird, которые мне нужно преобразовать. Мне удалось подключиться к ним с помощью кода python и библиотеки kinterbasdb, но я не могу найти способ получить список всех таблиц в базе данных. Есть ли команда, которая даст мне имена таблиц?Как получить список таблиц из базы данных Firebird?

ответ

5

Получение списка таблиц:

  1. В ISQL: show tables;
  2. как обычный запрос:

    SELECT a.RDB$RELATION_NAME 
    FROM RDB$RELATIONS a 
    WHERE RDB$SYSTEM_FLAG = 0 AND RDB$RELATION_TYPE = 0 
    
+0

второй метод работал, хотя мне пришлось отбросить тип отношения из уравнения – Beacon80

+1

@ Beacon80 Я использую Firebird 2.5, этот столбец недоступен в более старых версиях (версии структуры базы данных); если вы используете Firebird 2.5 и не имеете этого столбца, вам необходимо создать резервную копию и восстановить базу данных. –

+1

Запрос от Brent Rowland работает для более старых версий (мой запрос без 'RDB $ RELATION_TYPE = 0' также включает в себя представления). –

4

Я использую:

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS 
WHERE (RDB$SYSTEM_FLAG <> 1 OR RDB$SYSTEM_FLAG IS NULL) AND RDB$VIEW_BLR IS NULL 
ORDER BY RDB$RELATION_NAME; 
Смежные вопросы