У меня возникла проблема со вторым триггером, который мы должны написать относительно следующего:
Я только что написал хранимую процедуру и хранимую функцию, которые служат для вставки новой строки в мою таблицу Orders.Обновление строки вставляет: Ordernum, OrderDate, Customer, Rep, Manufacturer, Product, Qty и SaleAmount.
Теперь мне нужно написать триггер, который обновляет мою таблицу Office, добавляя сумму вновь добавленной продажи.Проблема в том, что не каждому торговому представителю присвоен офис.Я не понимаю, нужно ли мне иметь условие where в разделе «ДЛЯ КАЖДОГО РЯДА», которое каким-то образом предусматривает это, или мне нужно указать это после строки SET Sales.Пока это мой код, но, к сожалению, он обновляет все продажи офисов, а не только тот, к которому относится salesrep:
CREATE OR REPLACE TRIGGER UpdateOffices
AFTER INSERT ON Orders
FOR EACH ROW
BEGIN
UPDATE Offices
SET Sales = Sales + :NEW.Amount
WHERE Office IN (SELECT RepOffice
FROM Salesreps
WHERE RepOffice IS NOT NULL);
End;
/
SHOW ERRORS
Sales - это имя столбца в таблице Office.Сумма, если имя используется в хранимой процедуре.