powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Каким запросом получить список всех таблиц?
17 сообщений из 17, страница 1 из 1
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #39470681
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RDB$RELATION_TYPE может быть и null. А для временных таблиц какие-то другие значения.
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #39470693
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

он перепутал с RDB$SYSTEM_FLAG, который до 3.0 мог мог быть NULL и 0 для несистемных объектов
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #39470698
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут было похожее.
19712154
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #39470700
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, не та СУБД.
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #39470708
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks, спасибо..
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #39470733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksЧто в сочетании с отсутствием в документации упоминания значения NULL наводит на мысль что
его там наверное и не бывает.

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

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

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

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

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

Насчёт RDB$RELATION_TYPE не в курсе бывают ли там NULL, но не встречал.
...
Рейтинг: 0 / 0
Каким запросом получить список всех таблиц?
    #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
Каким запросом получить список всех таблиц?
    #39470792
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

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


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