переписать запрос в PostgreSQL - PullRequest
       5

переписать запрос в PostgreSQL

1 голос
/ 01 сентября 2010

После изменения схемы БД то, что было столбцом, теперь вычисляется в хранимой процедуре. Можно ли сделать это изменение незаметным для прикладных программ?

Так что когда программа отправляет запрос типа

SELECT id, 
       value 
  FROM table

... вместо этого он получает результат

SELECT id, 
       compute_value() AS value
  FROM table

Я думал, что мог бы использовать ПРАВИЛО, но невозможно создать правило SELECT для существующей таблицы.

Так что мне кажется, что единственной другой возможностью является создание новой таблицы и представления с именем существующей. Что из-за необходимости триггеров INSERT / UPDATE для представления является слишком сложным. Тогда я бы лучше обновил все клиентские приложения.

1 Ответ

2 голосов
/ 01 сентября 2010

Если вы знаете, что хотите вернуть значение, вы используете функцию, а не хранимую процедуру. Тогда вы бы ссылались на это как:

SELECT id,
       your_function_name(parameter) AS value
  FROM TABLE 

В документации "Функции SQL для составных типов" в документации приведен .

Создание представления с использованием приведенного выше утверждения идеально, если вашему приложению постоянно требуется вычисленное значение, иначе я бы не стал беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...