Hello, sasha!

sasha wrote:

очень трудно понять, почему new не работает в after, и работает в before?

Не, хоть убейте. Для таблиц понятно, для представлений нет. Без операции по умолчанию или триггера INSTEAD OF я не понимаю что такое BEFORE и AFTER для представления. Никак не понимаю.

текущий механизм триггеров таблиц действует для view.
Поэтому нет никаких непоняток. триггеры, превращающие
необновляемое view в обновляемое всегда были только before.
after для таких view - это просто дополнительное действие.

view это запрос. в отличие от таблицы. Поэтому перекрывая ОБНОВЛЯЕМОЕ
view триггером ты перекрываешь операцию обновления полностью.
Это удобно и замечательно.

Это вы факт констатируете. А чем не удобно когда есть три вида триггеров: BEFORE / INSTEAD OF / AFTER, каждыйй из которых делает то что ему положено делать?

ну нету триггеров instead of. А триггеры before/after существуют
ДАВНО. Если ты прицепился к реализации, то где ты был в 19... каком
то там году, когда выходил IB 4.0, и почему не сказал Borland-у о
том что их реализация кривая?

нынешнее поведение на 100% соответствует документации. Аминь.

Так если чё в документации описано, так что, нельзя обсудить/поменять?

я еще раз объясняю. что фактически все это работает именно так
уже примерно 15 лет, как минимум. Никто менять здесь ничего не будет.
instead of МОЖНО сделать, например как синоним к before insert для view. только вопрос - зачем? Только потому что некий Саша запутался,
и вместо before стал писать after, причем стал писать там то, что ЗАПРЕЩЕНО?

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить