Форум программистов, компьютерный форум CyberForum.ru

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
Dexel
31 / 11 / 1
Регистрация: 29.09.2013
Сообщений: 246
#1

CREATE VIEW, расположение полей - PostgreSQL

20.11.2016, 11:36. Просмотров 275. Ответов 2
Метки нет (Все метки)

Здравствуйте.

Смотрите на поле ava

SQL
1
2
3
4
5
6
7
8
=> CREATE OR REPLACE VIEW members_view AS SELECT m.id, name, email, ava, r.rating, nq, na FROM members AS m, members_rating AS r WHERE r.id=m.id;
CREATE VIEW
 
=> CREATE OR REPLACE VIEW members_view AS SELECT m.id, name, email, r.rating, nq, na, ava FROM members AS m, members_rating AS r WHERE r.id=m.id;
ERROR:  cannot CHANGE name OF VIEW COLUMN "ava" TO "rating"
 
=> CREATE OR REPLACE VIEW members_view AS SELECT m.id, name, email, r.rating, nq, na, m.ava FROM members AS m, members_rating AS r WHERE r.id=m.id;
ERROR:  cannot CHANGE name OF VIEW COLUMN "ava" TO "rating"
В чём дело?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2016, 11:36     CREATE VIEW, расположение полей
Посмотрите здесь:

CREATE VIEW, ошибка с псевдотипом - PostgreSQL
Приветствую. Возникла такая проблема, при создании данного представления возвращает ошибку "колонка row имеет псевдотип record" ...

CREATE TYPE - PostgreSQL
подскажите пожалуйста, как создать пользовательский тип... знаю, что создается с помощью CREATE TYPE, но все параметры не знаю... ...

Create cross-ref tables - PostgreSQL
Подскажите пожалуйста, как создать две таблицы, каждая из которых ссылается на другую? CREATE TABLE IF NOT EXISTS department ( ...

Результат выполнения CREATE TABLE - PostgreSQL
Добрый день. Возникла необходимость динамически создавать таблицы в БД. Пишу на ASP.NET, используя NpgsqlConnection. Вопрос...

Триггер у View - PostgreSQL
Привет. Хочу добавить триггер ко вью. Но до этого еще далеко, потому как у меня еще с самой функцией проблемы CREATE OR REPLACE...

Правильное написание VIEW - PostgreSQL
Добрый день Есть проблемка с правильным выводом результата запроса. Существует такой запрос: Вывести фио и паспорт заказчиков, ВСЕ...

Объединение полей разных записей - PostgreSQL
Здравствуйте. Подскажите, пожалуйста, как можно объединить две и более записей в одну, а их отличное поле записать как одно, не прибегая к...

Изменился порядок полей в таблицах - PostgreSQL
Добрый день! Недавно возникла проблема с которой не могу разобраться без посторонней помощи. В общем есть в PostgreSQL ф-я ...

Получение комментариев полей и таблиц Postgresql - PostgreSQL
Здравствуйте, помогите доделать запрос. Данный запрос выводит имя таблицы, комментарий к таблице, имя поля и комментарий к полю по...

Запрос даты и времени с разных полей - PostgreSQL
Доброго времени суток всем. Подскажите товарищи как быть. у меня есть таблица с различными полями. В ней зачем то были разделены поля даты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
20.11.2016, 23:52     CREATE VIEW, расположение полей #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Dexel Посмотреть сообщение
В чём дело?
Да, вот такая засада. Когда используете CREATE OR REPLACE, порядок, имена и типы данных полей должны совпадать.
В документации на этот счет есть целый абзац.
CREATE OR REPLACE VIEW is similar, but if a view of the same name already exists, it is replaced. The new query must generate the same columns that were generated by the existing view query (that is, the same column names in the same order and with the same data types), but it may add additional columns to the end of the list. The calculations giving rise to the output columns may be completely different.
Почему так, спросите вы??
Я глубоко не копал. Но есть предположение, что поскольку представления в PG реализованы через систему правил (там создается доп. таблица с именем представления и приписыванием правила ON SELECT), то проще заставить пользователя сделать DROP VIEW потом CREATE VIEW, чем вносить изменения в "правила".
Dexel
31 / 11 / 1
Регистрация: 29.09.2013
Сообщений: 246
21.11.2016, 13:51  [ТС]     CREATE VIEW, расположение полей #3
Аааа, REPLACE, конечно Сразу не дошло.
Спасибо!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru