Мне интересно, можно ли создать триггер на представлении после вставки, который обновляет столбец в другой таблице? Ниже приведен пример того, что я написал.Как создать триггер в представлении, который обновляет столбец в отдельной таблице?
Просмотр Имя: VMC_FWD2
Название таблицы: TLORDER
CREATE OR REPLACE TRIGGER QA_TRACE_NUM_INSERT_OI
AFTER INSERT ON VMC_FWD2
REFERENCING NEW ROW AS N
FOR EACH ROW
MODE DB2SQL
BEGIN ATOMIC
update tlorder set user4 = n.status where bill_number = n.number;
END
Однако это приводит к ошибке:
[IBM][CLI Driver][DB2/NT64] SQL0156N The name used for this operation is not a table. LINE NUMBER=2. SQLSTATE=42809"
и немного больше исследований говорит, что вы не можете использовать стандартные триггеры взглядов и что есть обходное решение, просто не то, что оно есть.
Неустойчивый нажать на спусковой крючок, или вы получаете сообщение об ошибке или он просто не работает? На основе http://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000931.html Я не понимаю, почему это не сработает , если пользователь, создающий обновление для представления, также имеет привилегии обновления для 'tlorder'. – xQbert
Итак, что-то не так с примером, который вы написали? – mustaccio
В нем говорится: «[IBM] [драйвер CLI] [DB2/NT64] SQL0156N Имя, используемое для этой операции, не является таблицей. LINE NUMBER = 2. SQLSTATE = 42809», и немного больше исследований говорит, что вы не можете использовать стандартные триггеры на Views и говорят, что есть работа вокруг, а не что это такое. – Landers