Создайте триггер для обновления новой таблицы из существующего представления. - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь создать триггер для новой таблицы (X), который извлекает данные из существующего представления (Y).(Таблица Y является точной копией представления X)

Мне известно о создании триггера для извлечения данных из представления в его собственную базовую таблицу.

На данный момент я вставил данные из Y в X, используя вставку в оператор.Мне нужно установить триггер на Y, чтобы обновление / вставка на Y отражалось и на X.

Вот что я пытаюсь сделать:

создать триггер TableUpdate на X

вместо вставки, обновите как

Начало

вставка в Y

выбор * из вставки

конец

Похоже, он обновляет только свои базовые таблицы, а не внешнюю таблицу.

1 Ответ

0 голосов
/ 24 апреля 2019

Вы не можете обнаружить изменения данных в представлении с помощью триггеров при изменении данных базовой (базовой) таблицы. Вам нужно добавить триггеры в таблицы (скажем, в таблицу A), которые формируют это представление для отслеживания изменений данных.

Подведем итог:

  • Предполагается, что представление Y берет данные из таблицы A.
  • Предполагается, что у представления Y триггер INSTEAD OF.
  • При изменении данных в таблице A триггер в представлении Y срабатывает NOT . Он будет срабатывать только при непосредственном вставке / обновлении View Y.

Заключение

Как сказал @SeanLange, вам нужно взглянуть на оптимизацию своего представления и / или найти способы не использовать его.

Я предлагаю вам взглянуть на Материализованные представления как на возможный способ оптимизации производительности представления.

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