Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Каким запросом получить список всех таблиц? / 17 сообщений из 17, страница 1 из 1
13.06.2017, 08:06
    #39470680
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Запрос
select count(*) as x from (select RDB$RELATION_NAME from RDB$RELATIONS
where (RDB$SYSTEM_FLAG = 0) AND (RDB$RELATION_TYPE = 0)
order by RDB$RELATION_NAME) a

выдаёт количество записей 174, когда таблиц на самом деле 192, как можно получить список полный список не системных таблиц?
...
Рейтинг: 0 / 0
13.06.2017, 08:27
    #39470681
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
RDB$RELATION_TYPE может быть и null. А для временных таблиц какие-то другие значения.
...
Рейтинг: 0 / 0
13.06.2017, 08:44
    #39470683
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
q1w1e1,

Вот тут можно посмотреть какая есть документация на Firebird, в том числе и на русском языке:
https://www.firebirdsql.org/en/reference-manuals/

И в частности вот тут:
https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf

Приложении D. Описание системных таблиц

RDB$RELATIONS

описываются поля в таблице RDB$RELATIONS
...
Рейтинг: 0 / 0
13.06.2017, 08:49
    #39470684
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
q1w1e1,

Код: plsql
1.
RDB$RELATION_TYPE SMALLINT 


Тип описываемого объекта:

0 – постоянная таблица созданная пользователем или системная таблица;

1 – представление;

2 – внешняя таблица;

3 – виртуальная таблица (таблицы мониторинга MON$, псевдотаблицы безопасности SEC$);

4 – GTT уровня соединения (PRESERVE ROWS);

5 – GTT уровня транзакции (DELETE ROWS).

Соответственно твоим (RDB$RELATION_TYPE = 0) ты исключил вьюхи, внешние таблицы, временные таблицы.
...
Рейтинг: 0 / 0
13.06.2017, 08:54
    #39470685
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
ExterisRDB$RELATION_TYPE может быть и null. А для временных таблиц какие-то другие значения.

В моей базе запрос
Код: plsql
1.
2.
3.
select *
from RDB$RELATIONS
where RDB$RELATION_TYPE is NULL

не выдает записей.

Что в сочетании с отсутствием в документации упоминания значения NULL наводит на мысль что его там наверное и не бывает.

FB 2.5 SS
...
Рейтинг: 0 / 0
13.06.2017, 09:33
    #39470693
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
fraks,

он перепутал с RDB$SYSTEM_FLAG, который до 3.0 мог мог быть NULL и 0 для несистемных объектов
...
Рейтинг: 0 / 0
13.06.2017, 09:41
    #39470698
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Вот тут было похожее.
19712154
...
Рейтинг: 0 / 0
13.06.2017, 09:42
    #39470700
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Сорри, не та СУБД.
...
Рейтинг: 0 / 0
13.06.2017, 09:53
    #39470708
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
fraks, спасибо..
...
Рейтинг: 0 / 0
13.06.2017, 10:36
    #39470730
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Симонов Денисfraks,

он перепутал с RDB$SYSTEM_FLAG, который до 3.0 мог мог быть NULL и 0 для несистемных объектов

Я вообще-то смотрел доку на FB 2.5
авторРуководство по языку SQL СУБД Firebird 2.5
6 сентября 2015 — v.0336-1 для Firebird 2.5.4
и там не упоминается возможность NULL.

авторRDB$SYSTEM_FLAG SMALLINT
Указывает, создана ли таблица
(представление) пользователем
(значение 0) или системой
(значение 1 или выше).


И опять же, на моем 2.5.1.26351 запрос
Код: plsql
1.
2.
3.
select *
from RDB$RELATIONS
where rdb$system_flag is NULL


не выдает записей.
...
Рейтинг: 0 / 0
13.06.2017, 10:45
    #39470733
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
fraksЧто в сочетании с отсутствием в документации упоминания значения NULL наводит на мысль что
его там наверное и не бывает.

Очевидно, у тебя чистая, здоровая база, созданная именно на этой версии сервера. У баз,
восстановленных из старых бэкапов, случаи бывают разные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.06.2017, 10:49
    #39470737
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
я напомню
http://www.ibase.ru/sysqry/
q1w1e1выдаёт количество записей 174, когда таблиц на самом деле 192
ну ведь просто же все. Пишешь
select * from rdb$relations
where rdb$relation_name not starting with 'RDB$'
и смотришь, чем там у ТВОИХ таблиц системные и другие флаги отличаются.
Если, конечно, в этой базе никто не создавал таблицы с именем с RDB$
...
Рейтинг: 0 / 0
13.06.2017, 11:09
    #39470761
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Dimitry SibiryakovfraksЧто в сочетании с отсутствием в документации упоминания значения NULL наводит на мысль что
его там наверное и не бывает.

Очевидно, у тебя чистая, здоровая база, созданная именно на этой версии сервера. У баз,
восстановленных из старых бэкапов, случаи бывают разные.

Не, у меня базам по много лет.
Однако при миграции с версии на версию я делаю как минимум перебэкап (что собственно и можно рассматривать как восстановление из старых бэкапов), и рекомендации в релизнотах читаю :)

Если в тройке отресторить базу из двойки или полторахи, то ясно что могут быть всякие эффекты. Но мне кажется что люди при миграции как-то более цивильно действуют чем просто поменять сервак и всё...
...
Рейтинг: 0 / 0
13.06.2017, 11:11
    #39470764
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
fraksи там не упоминается возможность NULL.

значит я забыл об этом написать. Добавлю в доку по 2.5. В 3.0 это не может быть никогда ибо для RDB$SYSTEM_FLAG явно введено ограничение NOT NULL. Как и сказал DS туда могли затесаться NULL при миграции с более старых ODS.

Насчёт RDB$RELATION_TYPE не в курсе бывают ли там NULL, но не встречал.
...
Рейтинг: 0 / 0
13.06.2017, 11:29
    #39470782
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Симонов Денисзначит я забыл об этом написать.


Может вот тут еще подправить?

https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf

URL на файл доки по 2.5 на русском языке не содержит упоминания цифр 25, в то время как все остальные рядом лежащие файлы в имени файла содержат номер версии. Было бы логичнее что бы каждый файл имел циферки относящие к конкретной версии.

https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf

https://www.firebirdsql.org/file/documentation/reference_manuals/firebird-language-reference-30-rus.pdf

Ну и разнобойчик в регистрах и подчеркиваниях/минусах - как-то не аккуратно :)
...
Рейтинг: 0 / 0
13.06.2017, 11:34
    #39470792
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
fraks,

это не ко мне. Жди Ковязина он на firebirdsql.org размещает ресурсы
...
Рейтинг: 0 / 0
13.06.2017, 12:00
    #39470835
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким запросом получить список всех таблиц?
Симонов Денис, а где его ждать? Я как-то отправлял правки по nbackup на русском языке, до сих пор тишина.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Каким запросом получить список всех таблиц? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]