![]() |
|
Модераторы: LSD |
![]()
|
|
| setnull |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: 1 Всего: 1 |
Все здравствуйте.
Ситуация... Есть древовидная сущность
Как осуществить контроль цикличности наследования? Т.е. чтоб "предком" не оказался "потомок"? В трггере я не могу осуществить доступ к редактируемой таблице... Че делать? Спасибо! Это сообщение отредактировал(а) setnull - 4.2.2009, 17:33 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
В общем случае, пожалуй никак.
если id суррогатный ключ, проще всего, пожалуй, было бы сделать fk по parent на id и поставить чек parent < id. Кривовато, косовато, но жить, по идее будет. Ну а как мутацию обходить, думаю учить не надо? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| setnull |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: 1 Всего: 1 |
быть может, я просто не совсем ориентруюсь в терминологии, но что-то мне подсказывает, что послушал бы с удовольствием.... |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
речь идет о: Добавлено через 7 минут читаешь, вникаешь, задаешь вопросы если что то не понятно http://www.firststeps.ru/sql/oracle/ шаги 112, 117 потом читаешь про автономную транзакцию, читаешь про автономный тригер и чем он отличается от обыкновенного. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Автономка не увидит в нашей таблице наших не закомиченных даных, тут она не помошница. Автономный триггер - чесгря не понял о чем речь.. для меня это чтото новое ;) Испльзуя автономные транзакции из триггера, следует помнить, что вызывающая транзакция , может и откатиться, в то время, как автономная - зафиксируется. Так же следует помнить, что row триггеры могут вызываться более одного раза для каждой строки. Область применения автономных транзакций в триггерах - очень узка. Avoiding Mutating Tables Про мутирующие таблицы Еще есть вариант с созданием вьюхи с instead of триггером. Отчего Том о нем не пишет, в контексте предотвращения мутаций, мне не понятно, видать есть ньюансы. В шаге 117 меня очень насторожил код первого же триггера. В after insert триггере используется :old.id
Это сообщение отредактировал(а) Zloxa - 5.2.2009, 11:38 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
да, но для понимания использования ее в тригере знать необходимо. тригер с прагмой: autonomous_transaction; вобще использование атономки это один из вариантов с учетов ньюансов, просто сообщение оформил так что она является лекарством. всетаки внимание стоит обратить в первую очередь на операторный тригер. наверное дело в том что триггер instead of должен вызвать процедуру которая сделает все нужные проверки, но для того что бы ее вызвать нафиг ненадо создавать вьюху, разви что если очень хочиться тригеры заюзать. Это сообщение отредактировал(а) DimW - 6.2.2009, 13:03 |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |