الانتقال إلى المحتوى

تريغر بسيط مع خطا ORA-04091: table string.string is mutating


mmsalman87

Recommended Posts

اخواني عند تنفيذ هذا التريغر البسيط والتافه

CREATE OR REPLACE TRIGGER  status_terminated_date
after UPDATE ON employees
FOR EACH ROW
BEGIN if :new.status = 2 then 

update employees
set terminated_date =to_char(sysdate,'dd/mm/yyyy')
where emp_id=:old.emp_id;
end if;
END;


يشتغل تمام
ولكن عند عمل تعديل على قيمة status =2 يعطيني الخطا التالي

يعطيني الخطا التالي

ORA-04091: table string.string is mutating, trigger/function may not see it
Cause: A trigger (or a user defined plsql 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.

شو الحل لانو جنني ومن الصبح وانا بلشان فيه

رابط هذا التعليق
شارك

اخواني طبعا هذا الخطأ يحدث عندما تريد ان تنفذ جمل dml اثناء التواجد في الجدول وهذا لا يجوز
وبالتالي يجب التحايل بطرق اخرى على الموضووع
انا قمت بتبديل الكود واشتغل تمام وهو كالتالي كي يستفيد الكل منه

CREATE OR REPLACE TRIGGER  status_terminated_date
before  UPDATE ON employees
FOR EACH ROW
BEGIN if :new.status = 2 then 
:new.terminated_date:=sysdate;

end if;
END;

رابط هذا التعليق
شارك

الأخ / ماهر

شكرا لك .. على ايضاح مشكلة ال mutating

اليك مشاركات سابقة بالمنتدى عن هذا الموضوع
وملفات مرفقه عن طرق تجنب ال mutating

إضغط هنا : Problem In Trigger ... mutating

رابط هذا التعليق
شارك

الأخ / ماهر

شكرا لك .. على ايضاح مشكلة ال mutating

اليك مشاركات سابقة بالمنتدى عن هذا الموضوع
وملفات مرفقه عن طرق تجنب ال mutating

إضغط هنا : Problem In Trigger ... mutating

مشكور اخوي امجد ومنكم نستفيد
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية