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

الفرق بين trigger و function


brothers

Recommended Posts

السلام عليكم ورحمة الله وبركاته
اود يا زملائى الكرام ان اعرف ما الفرق بين trigger و function وخصوصا متى استخدم هذا ومتى استخدم تلك ؟
ومتى استخدم procedure ومتى استخدم function؟
حيث اننى اعرف ان function بتقوم ب return a value ولكنى اريد ان اعرف الفرق بينهما فى الغرض منهما وليس فى syntax الخاص بهما
يا ريت لو فى مثال لهذه الحالات ولكن بعد الشرح حيث شرح الفرق بينهم اهم من المثال
وجزاكم الله كل خير

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

aslam walikom
i just wanna add few words about functions and procedures
functions has to have a return value and this return can be used in the main prog but a procedure may or may not have a return
and also we can call the function from a select query but the procedure cant be called from a select query
I HOPE IF I WERE WRONG I WILL FIND SOMEBODY TO CORRECT ME AND THANKS FOR THIS GREAT WEBSITE

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

السلام عليكم ..

Trigger
يعمل تلقائياً بحيث أنك اذا عملت update على table .. هذا على سبيل المثال .. فان الـ trigger الذي قمت بكتابته .. ينفذ اوامراً تلقائياً ..

(بالاحمر هي اوامر تلقائية يقوم بها الداتابيس في حال تم تفعيل الـ trigger )
مثال1:
كتبت trigger وقلت فيه : اذا حدث اي delete على الـ table الاول .. ادخل القيم المحذوفة في الـ table الثاني ..

مثال 2:
كتبت trigger وقلت فيه: اذا تم تطبيق جملة insert على الـ table الفلاني .. وكانت القيمة التي ادخلتها اكثر من 100 .. ادخل القيمة المدخلة مضروبة في 5 .. وذلك في الـ colomn الثاني ..


Function
تطبقه على مجموعة من الـ data لتحصل على قيم اخرى (واحيانا مشابهه) .. اي تطبق عليها بعد العمليات الحسابة واعادة الصياغة وما الى شابه ..

مثال1:
select count(*) from table1

select sum(salary) from table2

select salary from table2 where avg(salary) > 1000


مثال 2: يستخدم ايضاً في القيم ..
declare
x varchar2(15);
y number := 222;
begin
x := to_char(y);
end;

sum و count و avg و to_char جميعها functions .. تطبق على قيمة لتخرج لك قيمة اخرى ..


Procedure
بعض الاوامر التي تريد تطبيقها جملة واحدة او ايضا تطبيق عمليات حسابية وما شابه .. ومثل ما ذكروا لاخوان قبلي .. لا يمكنك وضعها في select statement .. وممكن ان تجعل لها مدخلات ومخرجات ..

مثال1:
نعمل procedure يقوم بجمع قيم العمود الاول بقيم العمود الثاني .. ويضعه في العمود الثالث ..
ولتفعيله .. التالي:
begin
procedure_name;
end;

أو:
exec procedure_name

مثال2:
نعمل واحداً يقوم باستقبال قيمة (لنقل اسم) .. فيعمل على طبع تاريخ ميلاد الشخص وعنوانه على الشاشة ويحسب عمره ويطبعه ايضاً ..
exec procedure_name(Ahmad);


هذا باختصار ..
اذا تطلب الموضوع توضيحا اكثر .. ترى ما يردك الا لسانك ..

مع التحية .. ;)

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

  • بعد 3 أسابيع...

trigger

هو عباره عن مجموعه من الاوامر تنطلق او تنفذ عند حدوث حدث معين مثل
on logon
on logout
befor insert
befor delete

اما ال procdure

فا هو عباره عن مجموعه من الاوامر تنطلق فى اى حدث يحدده المستخدم
اى مكان يكتب فيه اسم الاجراء

ويمكن ان تعيد قيمه (ليس شرط ).

function

هى مثل الاجراء ولكن لبد من ان تعيد قيمه (شرط اساسى ).

اتمنى ان يكون الشرح سهل وبسيط

ايهاب وجدى

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

trigger&function/trigger&procedure
يوجد فرق اساسى بين استخدام الprocedure&function
وهو اننا بستخدم الfunction فى حالة ان الكود الى انا كتباه عشان يحسب عملية حسابية مثلا او يرجع لى true or false
procedure بستخدمه عشان اقوم بمهمة زى مثلا مهمة ادخال او تعديل فى احد الجداول
والاحتياج الاساسى للfunction او procedure كان عشان عدم تكرار الكود بمعنى ان المهمة الى بيقوم بيها جزء من الكود الى انا بكتبه بتتكرر معايا كتير فى البرنامج بتاعى فبدل ما اكتبه فى كل مرة لاء انا اعمله procedure او function (على حسب الجزء ده مناسب ليه ايه )عشان يتم استدعائها فى كل مكان احتاجها فيه وانت ممكن تتخيل طبعا ده ممكن يوفر لك وقت اد ايه وكتابة وكمان البرنامج بتاعك يكون فيه سهولة فى الmaintenance
ال trigger لا مجال للمقارنه بينه وبين الfunction ,procedure
اللهم الا حاجه واحده ان ال trigger مكان ممكن يتحدد بيه امته يتم الكود ده سواء كان function او procedure

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

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

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

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

×   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.

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

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

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