我有一個觸發器,目的是檢查新插入的行的活動,並在活動已在表中時打印出消息。該消息打印添加的新行以及已經具有該行爲的行。我能夠打印行,並有重複,但無法弄清楚如何初始化重複行的值,然後打印。ORACLE觸發打印相關行
觸發:
create or replace trigger insertActivities
before insert
on ACTIVITIES
for EACH row
declare
n int;
otherName varchar(30);
otherActivity varchar(30);
otherMinutes varchar(30);
begin
select Count(*)
into n
from ACTIVITIES
where Activity = :NEW.Activity;
if n>0 then
dbms_output.put_line('Duplicate activity. New Name: ' || :NEW.Name || ' New Activity: '|| :NEW.Activity
|| ' New Minutes: '|| :NEW.Minutes || ' Other Name: ' || otherName || ' Other Activity: ' || otherActivity
|| 'Other Minutes: '|| otherMinutes);
end if;
END;
我知道了「其他」變量是錯的,他們是那種佔位,直到我可以計算出如何正確做到這一點。謝謝。
怎麼會在併發插入的情況下表現?不,嚴肅地說,使用'UNIQUE'索引是否真的沒有辦法做到這一點? – 2014-12-02 21:49:40
tbh它的一個類,並不需要完整的邏輯,只需要做我所要求的。然而我明白你在說什麼。 – user3587186 2014-12-02 21:52:56