У меня есть вид:
select * from ot.vw_rebellionrid;
, который показывает мне:
full_name
- столбецtrainer
таблица subject_name
является столбцом subject
таблица
Представление имеет запрос:
SELECT full_name, subject_name
FROM ot.trainer, ot.subject;
Итак, я изучаю вместо удаления тигра, поэтому код длявместо триггера есть:
CREATE OR REPLACE TRIGGER ot.io_delete
INSTEAD OF DELETE ON ot.vw_RebellionRid
FOR EACH ROW
BEGIN
DELETE FROM ot.trainer WHERE FULL_NAME = :old.FULL_NAME;
DELETE FROM ot.subject WHERE SUBJECT_NAME= :old.SUBJECT_NAME;
END;
/
Итак, чтобы выполнить этот триггер, я выполняю следующую инструкцию:
delete from ot.vw_RebellionRid where subject_name='java';
, когда он выполняется, затем:
2 rows deleted.
В соответствии с моим пониманием, поскольку в двух строках в качестве java для оставшегося вывода есть subject_name, я думаю, что будет после удаления:
--------------------------
full_name | subject_ name |
---------------------------
Manish Sharma Oracle |
ashwin Oracle |
---------------------------
Но когда я выполнил
select * from ot.vw_RebellionRid ;
, тогдаЯ получил вывод как ПУСТОЙ ТАБЛИЦА;
Так как были 4 строки, 2 строки были удалены, но когда я снова выбираю вид, то как яя получаю пустую таблицу? У меня должны были остаться две строки.