Добавить уникальное ограничение в представление Postgresql - PullRequest
1 голос
/ 06 декабря 2011

Все,

Есть ли способ добавить уникальное ограничение в представление Postgresql?

CREATE OR REPLACE VIEW export AS
 (SELECT nextval('export_view'::regclass)::integer AS pid, getdata.id, getdata.service, getdata.title, getdata.date_taken, getdata.date_inserted, getdata.url, 
    regexp_replace(getdata.description, E'[\\n\\r]+', ' ', 'g') AS description, getdata.geom
   FROM getdata)

Я пробовал каждую комбинацию, чтобы эта вещь работала как обычная таблица, новсе еще не работает должным образом.

Спасибо, Адам

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

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

Наличие этой триггерной конструкции должно имитировать ограничения на представления, но также является довольно хрупким. К сожалению, похоже, что нет собственной возможности добавлять ограничения к представлениям.

0 голосов
/ 06 декабря 2011

Никакие представления не являются обертками над таблицами.Вы должны наложить ограничение на таблицу.

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