masik
1

Проблема с триггером

20.05.2010, 15:07. Показов 1805. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может у кого будет время мне ответить, please.
Есть таблица bb_basket, содержащая данные о shopping basket: idbasket, idshopper, ..., orderplaced, total.
Мне надо написать триггер, который будет начислять на каждую 5-ю покупку каждого покупателя 10% скидку. Колонка orderplaced может иметь значение 1, что означает, что ордер был размещен. Т.е. я так понимаю, что если я делаю:
Oracle 11 SQL
1
2
3
UPDATE bb_basket
SET orderplaced=1
WHERE idbasket=13;
то триггер должен проверить количество ордеров для этого покупателя, и если это пятый ордер, начислить скидку 10% на сумму покупки из колонки total.
При этом два условия: должен быть package, для спецификации host переменных(их как минимум две: одна для подсчета ордеров, другая флаг, который будет устанавливаться в 'Y', если надо начислить дискаунт.
Все что я пытаюсь написать, заканчивается:
ORA-04091: table SYSTEM.BB_BASKET is mutating, trigger/function may not see it

Я уже не знаю что делать...
Помогите, пожалуйста, если не трудно
Спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2010, 15:07
Ответы с готовыми решениями:

Проблема с триггером
Триггер для таблицы flights FLIGHT_ID NUMBER DEPARTUREDATE DATE ARRIVALDATE DATE ...

Проблема с триггером
Я читал что триггер -это что то вроде пистолет производящий выстрел. Я с этим соласен. Но я...

Проблема с третим триггером
Что с триггером «Products_Sales»? Почему в результатах выводится "Товар «iPhone X» фирмы «Apple...

Проблема с триггером Запрос вернул больше одного значения
Доброго времени суток! Сделал триггер для свое базы данных Суть в чем При добавлении в...

1
1 / 1 / 0
Регистрация: 24.04.2010
Сообщений: 77
24.05.2010, 14:41 2
Вот, что говорит Oracle Doc про это ошибку.

ORA-04091 table string.string is mutating, trigger/function may not see it
Cause: A trigger (or a user defined PL/SQL function that is referenced in this statement) attempted to look at (or modify) a table that was in the middle of being modified by the statement which fired it.
Action: Rewrite the trigger (or function) so it does not read that table.

А почему, простите, Вы разместили Вашу таблицу в схеме System?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2010, 14:41
Помогаю со студенческими работами здесь

Непонятка с триггером
Столкнулся с непонятной разницей в поведении между HEF4013 и CD4013. Вторая не работает в...

Проблемы с триггером
У меня есть триггер, который генерирует id для новой записи в таблице. Когда я пытаюсь добавить...

Сложность с триггером
Добрый день, помогите реализовать следующее. Есть две таблицы. Нужно реализовать следующее: Чтобы...

Помгите с триггером
Всем привет, в общем есть таблица ID, Товар, Цена, Количество, нужно по клику на кнопке изменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru