Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц / 13 сообщений из 13, страница 1 из 1
22.06.2006, 11:16
    #33807936
Robert Ayrapetyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Имеется куча таблиц одинаковой структуры. Нужно что-то типа select * from *. А нельзя. Вручную вбить можно, но хотелось бы знать есть ли другой способ подсунуть парсеру параметр "все таблицы"?
...
Рейтинг: 0 / 0
22.06.2006, 12:00
    #33808130
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Код: plaintext
1.
2.
3.
4.
5.
select *, 'table1' as table_name from table1
union
select *, 'table2' from table2
union
select *, 'table3' from table3
...
Рейтинг: 0 / 0
22.06.2006, 12:04
    #33808161
SOmni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Можно :)
Получаем все нужные таблицы
--
select tablename from pg_tables where schemaname='public' and tablename like 'table_%'
--
ну и далее можно хранимку написать, которая вернет всё, что нужно
...
Рейтинг: 0 / 0
22.06.2006, 12:05
    #33808166
pamir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
И не забыть покусать того, кто спроектировал такую структуру.
...
Рейтинг: 0 / 0
22.06.2006, 13:14
    #33808465
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
SOmniМожно :)
Получаем все нужные таблицы
--
select tablename from pg_tables where schemaname='public' and tablename like 'table_%'
--
ну и далее можно хранимку написать, которая вернет всё, что нужно
что-то я о этом даже не подумал :)

pamirИ не забыть покусать того, кто спроектировал такую структуру.
лучше уж сразу "бритвой по горлу и в колодец" (с)
...
Рейтинг: 0 / 0
22.06.2006, 13:18
    #33808490
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
ZemA SOmniМожно :)
Получаем все нужные таблицы
--
select tablename from pg_tables where schemaname='public' and tablename like 'table_%'
--
ну и далее можно хранимку написать, которая вернет всё, что нужно
что-то я о этом даже не подумал :)

pamirИ не забыть покусать того, кто спроектировал такую структуру.
лучше уж сразу "бритвой по горлу и в колодец" (с) А еще пожно один раз таким образом собрать партицированное предсталение. А уж затем все запросы направлять к этому представлению :)
...
Рейтинг: 0 / 0
22.06.2006, 13:20
    #33808499
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
ZemA[quot SOmni]Можно :)
Получаем все нужные таблицы
--
select tablename from pg_tables where schemaname='public' and tablename like 'table_%'
--
ну и далее можно хранимку написать, которая вернет всё, что нужно
что-то я о этом даже не подумал :)
А еще можно один раз таким образом собрать партицированное предсталение (процедурно получить DDL-текст на создание представления). А уж затем все запросы направлять к этому представлению
...
Рейтинг: 0 / 0
23.06.2006, 14:22
    #33811506
Robert Ayrapetyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Всем спасибо. Такой вопрос. Но сначала постановка задачи. Есть несколько объектов. Каждый объект генерирует лог-файл, приличный, порядка сотни тысяч записей в день. У всех объектов лог-файлы одинаковы по структуре. Я эти лог-файлы складываю в БД, причем для каждого объекта у меня отдельная таблица. Собственно вопрос: есть ли смысл ввести дополнительное поле "Идентификатор объекта" и класть все логи в одну единственную таблицу? Ускорит ли это запросы типа "select * from *" или скорость не изменится?
...
Рейтинг: 0 / 0
21.08.2006, 17:31
    #33932930
SOmni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
не попробуешь - не узнаешь :)
...
Рейтинг: 0 / 0
22.08.2006, 08:08
    #33933538
Andrew Sagulin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Robert AyrapetyanСобственно вопрос: есть ли смысл ввести дополнительное поле "Идентификатор объекта" и класть все логи в одну единственную таблицу? Ускорит ли это запросы типа "select * from *" или скорость не изменится?

Ускорить-то может быть и не ускорит, но жизнь упростит точно. Ещё можно сделать партиционирование по дням, тогда могут не понадобиться индексы по дате/времени.
...
Рейтинг: 0 / 0
22.08.2006, 12:19
    #33934238
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
Robert AyrapetyanИмеется куча таблиц одинаковой структуры. Нужно что-то типа select * from *. А нельзя. Вручную вбить можно, но хотелось бы знать есть ли другой способ подсунуть парсеру параметр "все таблицы"?
если вы всю эту кучу унаследуете от одной болванки
CREATE TABLE tab001 INHERITS (tab) ;
....
CREATE TABLE tab015 INHERITS (tab) ;
то
SELECT * FROM tab;
вернет вам данные всех таблиц
...
Рейтинг: 0 / 0
22.08.2006, 12:21
    #33934252
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
а так
SELECT *,tableoid FROM tab;
- еще и указатели на таблицы.
...
Рейтинг: 0 / 0
22.08.2006, 12:42
    #33934364
pamir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц
О! Удобный вариант использования наследования.
Пожалуй можно забрать назад свои слова
Ну или смягчить их :)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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