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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

لماذا لا ينفذ ال Trigger التالي


لا توجد ردود على هذا الموضوع

#1 أبو محمـد

أبو محمـد

    عضو

  • الأعضــاء
  • 17 مشاركة

تاريخ المشاركة 31 January 2006 - 01:10 PM

السلام عليكم
لا تقوم قاعدة البيانات بتنفيذ Trigger التالي - ويتم تنفيذه بعد إضافة بيانات للسجل - :

CREATE TRIGGER IN_AVG FOR PRICE_DATE
ACTIVE AFTER INSERT POSITION 0
AS declare variable num decimal(15,2);
declare variable m_id integer;
begin
select max(id) from price_date where id_comp = new.id_comp into :m_id;
if (m_id > 8) then
    begin
    select avg(pr_close) from price_date  where id_comp = new.id_comp and id > :m_id -9  into :num;
    new.avg_9 = :num;
    end
    else new.avg_9 = 0;
end



وعندما استبدلت تفيذه بقبل إضافة بيانات لللسجل فإنه ينفذه .


CREATE TRIGGER IN_AVG FOR PRICE_DATE
ACTIVE BEFOR INSERT POSITION 0
AS declare variable num decimal(15,2);
declare variable m_id integer;
begin
select max(id) from price_date where id_comp = new.id_comp into :m_id;
if (m_id > 8) then
    begin
    select avg(pr_close) from price_date  where id_comp = new.id_comp and id > :m_id -9  into :num;
    new.avg_9 = :num;
    end
    else new.avg_9 = 0;
end

لماذا نفذه عندما كان قبل السجل ولم ينفذه عندما بعد السجل
أقصد بالتفيذ أنه لا تتغير قم الأعمدة الموجودة بالكود .

تم التعديل بواسطة أبو محمـد, 31 January 2006 - 01:12 PM.