新與PL/SQL工作,並試圖創建一個語句級觸發器,它們將在「重排」的值更改爲「是」,當產品數量(p_qoh)或者是小於10或小於產品最小值(p_min)的兩倍。如果情況並非如此,那麼將「重新排序」值更改爲「否」。我的問題是,當我對特定產品進行更新時,它改變了這一切,而不是行的一個我指定的重排序值。似乎無法弄清楚我出錯的地方,認爲我一直盯着它太久,任何幫助都不勝感激。PL/SQL更新觸發更新所有行
CREATE OR REPLACE TRIGGER TRG_AlterProd
AFTER INSERT OR UPDATE OF p_qoh, p_min ON product
DECLARE
v_p_min product.p_min%type;
v_p_qoh product.p_qoh%type;
CURSOR v_cursor IS SELECT p_min, p_qoh FROM product;
BEGIN
OPEN v_cursor;
LOOP
FETCH v_cursor INTO v_p_min, v_p_qoh;
EXIT WHEN v_cursor%NOTFOUND;
IF v_p_qoh < (v_p_min * 2) OR v_p_qoh < 10 THEN
UPDATE product SET p_reorder = 'Yes';
ELSE
UPDATE product SET p_reorder = 'No';
END IF;
END LOOP;
END;
/
您更新不包括其中 – kevinsky