powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / View на все поля таблицы
6 сообщений из 6, страница 1 из 1
View на все поля таблицы
    #34674198
S.Kalishenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос прост: почему PostgreSQL при создании view на все поля таблицы, а именно

create view "vw_Test" as select * from "tbl_Test"

создает мне view с перечислением всех полей таблицы? Зачем мне это нужно? Я не хочу в будущем переделывать view каждый раз после внесения изменений в таблицу. Как создать view на все поля таблицы?
...
Рейтинг: 0 / 0
View на все поля таблицы
    #34674254
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как Никак.
Так как при создании представления постгрес создаёт и соответствующий тип данных, который связан с представлением и определяет какие поля возвращает представление.
А в типе данных поля должны быть четко прописаны.

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
View на все поля таблицы
    #34674389
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan BlackВроде как Никак.
Так как при создании представления постгрес создаёт и соответствующий тип данных, который связан с представлением и определяет какие поля возвращает представление.
А в типе данных поля должны быть четко прописаны.

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 

не совсем так
docsViews in PostgreSQL are implemented using the rule system. In fact, there is essentially no difference between

Код: plaintext
1.
CREATE VIEW myview AS SELECT * FROM mytab;
compared against the two commands

Код: plaintext
1.
2.
CREATE TABLE myview (same column list as mytab);
CREATE RULE "_RETURN" AS ON SELECT TO myview DO INSTEAD
    SELECT * FROM mytab;

т.е. создается таблица, аналогичная структуре представления, на которую (таблицу) вешается rule
...
Рейтинг: 0 / 0
View на все поля таблицы
    #34674451
S.Kalishenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А выражение "(same column list as mytab)" никого не смущает?

CREATE TABLE myview (same column list as mytab) ;
CREATE RULE "_RETURN" AS ON SELECT TO myview DO INSTEAD
SELECT * FROM mytab;
...
Рейтинг: 0 / 0
View на все поля таблицы
    #34674595
S.Kalishenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да и выражение "DO INSTEAD SELECT * FROM mytab;" само говорит за себя.
Проверил я этот способ. Postgre не способен анализировать relation, а тупо отображает те поля, которые были на момент создания представления. Итог: очень убого. :(
...
Рейтинг: 0 / 0
View на все поля таблицы
    #34678696
Ленивец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если подумать - то зачем нужны вьюшки - ограничивать доступ к данным.
Следовательно - нах мне резиновая структура вьюшки, которая будет жрать дополнительные
ресурсы на синхнонизацию с изменившейся структурой таблиц?
Ну вот пример - есть прайс и есть вьюшки для общего доступа скажем со для вебстранички
- без колонок "Диллер1","Диллер2" , но вот я добавляю в таблицу прайса колонку "Диллер3".
Теперь, если мне нужно её показать - делаю это явным образом.
В вашем же варианте - мне бы пришлось удалять эту и все добавляемые колонки из кучи вьюшек в кооторых они явно излишни.
В итоге получается что данная постановка вопроса не убожество а вполне обоснованный подход.
А запросы "select *..." - извините, но мн кажется это признак лени или незнания структуры базы.
Ладно если я подобное пихаю в Sqlplus/psql - и то - там где база новая и я непомню/не знаю что там а в структуру лезть лениво/нетвремени... Но пихать подобное в код приложения - еще раз сорри за резкость - бред достойный первокурсника.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / View на все поля таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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