powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / тип для хранения таблиц
12 сообщений из 12, страница 1 из 1
тип для хранения таблиц
    #33511131
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в следующем: в ms sql есть тип table. С этой переменной можно работать как с таблицей, т.е. вставлять,обновлять,удалять данные и т.д. Наличие данного типа делает работу очень удобной. Есть ли подобный тип в PostgreSQL? Если нет то как быть, когда например надо передать в ХП несколько строк таблицы?
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33511190
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PoligonВопрос в следующем: в ms sql есть тип table. С этой переменной можно работать как с таблицей, т.е. вставлять,обновлять,удалять данные и т.д. Наличие данного типа делает работу очень удобной. Есть ли подобный тип в PostgreSQL? Если нет то как быть, когда например надо передать в ХП несколько строк таблицы?
Курсор?
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33512828
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор не очень удобно использовать - с ним нельзя работать как с таблицей, т.е. например сделать выборку из него select'ом.
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33512885
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если отказаться от полной аналогии, то со своими наборами можно работать через SETOF ф-ии. Естественно все _совсем_ по другому. (ф-ю-набор можно вызвать внутри чего-то, но нельзя передать внутрь чего-то через параметр, в набор можно воткнуть данные внутри ф-ии его формирующей, или юнионом - снаружи (в зависимости от). Все несколько иначе.



ЗЫ. (2 Andrey Daeron) О курсорах. Как сейчас с обновляемостью курсоров в 8.1 - не знаю. Кажется раньше они были необновляемы (натыкался в чем-то наподобь ~~ToDo). Если сейчас иначе - прошу поделиться примером.
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33512914
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PoligonВопрос в следующем: в ms sql есть тип table. С этой переменной можно работать как с таблицей, т.е. вставлять,обновлять,удалять данные и т.д. Наличие данного типа делает работу очень удобной. Есть ли подобный тип в PostgreSQL? Если нет то как быть, когда например надо передать в ХП несколько строк таблицы?

Может вызывать ХП для каждой строки? Тип record в постгре есть...

Код: plaintext
select my_procedure(field1) from table
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33513100
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Opilki_Inside : это работать долго будет если надо много строк передать.
2 4321 : я и работаю с наборами, просто хотел точно убедиться, что другого варианта нет.

Всем спасибо за прояснение ситуации.
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33513254
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Poligon2 4321 : я и работаю с наборами, просто хотел точно убедиться, что другого варианта нет. другой вариант есть, но редко вспоминаем (в силу отвычки). ибо он в точности равен варианту мсскл 6.5 - темповые таблички. Правда нет глобальных темповых, но внутри сеанса есть обычные. Минусы - они кааца таки пишуцца на диск без вариантов (могу врать - не пользую, но смотрел варианты).
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33515518
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 4321: в каком смысле "темповые таблички"? Как их использовать не самому же создавать? И где про это можно почитать? (в мануале по-моему ничего такого нет ИМХО)
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33515551
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Poligon2 4321: в каком смысле "темповые таблички"? Как их использовать не самому же создавать? И где про это можно почитать? (в мануале по-моему ничего такого нет ИМХО)

Темповые таблички создаются и существуют только во время сессии в которой они были созданы. Другие пользователи не видят этих таблиц... По завершению сессии они автоматом удаляются.
Создаются они аналогично простым, только нужно указать ключевое слово TEMP, когда пишет create table... в мануале все описано
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33515574
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще можно создавать таблицу используя выражения... они создадут темповскую таблицу и перегонят туда сразу данные, которые были получены в резульате выполнения запроса
Код: plaintext
create table as
или
Код: plaintext
select * into temp new_table from old_table name where...
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33515863
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Poligon2 4321: в каком смысле "темповые таблички"? Как их использовать не самому же создавать? И где про это можно почитать? (в мануале по-моему ничего такого нет ИМХО)
см. мануал по CREATE TABLE по части слов TEMP|TEMPORARY (аналог #table MSSQL - предшественнику @table). Дополнительно - пояснения по части ON COMMIT
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] - те могут не иметь влияния при старших версиях (7.3.4 кажется нифия не дропает, как не напиши - приходится дропать табличку в той же процедуре, что и объявлять)

дополнительно - кажется желательным придерживаться своих соглашений о именах темповых таблиц (аналогично префиксов # ## в MSSQL). иначе возможно дропнуть одноименную постоянную (см. по форуму).

остальное осветил ОПИЛКИ_ВНУТРЕ.
...
Рейтинг: 0 / 0
тип для хранения таблиц
    #33518749
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо.
Буду делать не темповых таблицах.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / тип для хранения таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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