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

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

صورة
- - - - -

عمل Trigger


1 رد (ردود) على هذا الموضوع

#1 hider

hider

    عضو

  • الأعضــاء
  • 17 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 06 May 2007 - 10:41 PM

مثال في جدول EMP
أريد عمل trigger
عند القيام بأدخال رقم موظف في جدول emp موجود يقوم بحذف سجيل هذا الموظف وأدخال السجيل الجديد

#2 jamal_rrkk

jamal_rrkk

    عضو نشط

  • الأعضــاء
  • 452 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 07 May 2007 - 03:08 PM

السلام عليكم ورحمة الله وبركاته

اخي الكريم

الـ trigger التالي يقوم بحذف السجل السابق قبل عملية ادخال السجل الجديد الذي يحتوي علي نفس الرقم الوظيفي

create  or  replace  trigger   t_emp   before  insert  on   emp   for  each  row
declare
id  number;
begin
select count(empno) into id  from  emp  where  empno = :new.empno;
if  id = 1 then
delete from  emp where empno = :new.empno;
end if ; 
end;


حيث بهذه الطريقة سوف تفقد بيانات الموظف السابق الذي كان يحمل نفس الرقم الوظيفي

لذلك من الأفضل إنشاء جدول ثاني يتم فيه إدخال البيانات التي تم حذفها في الجدول الأول

إنشاء الجدول

copy from scott/1@orcl to scott/1@orcl create emp2 using SELECT * FROM  emp WHERE  empno = 0;

إدخال عمود جديد يحتوي علي تاريخ الحذف

ALTER  TABLE  emp2  ADD ( dat  date );


تعديل الـ trigger السابق كما يلي

create  or  replace  trigger   t_emp   before  insert  on   emp   for  each  row
declare
id  number;
begin
select count(empno) into id  from  emp  where  empno = :new.empno;
if  id = 1 then
insert  into  emp2 ( dat , EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) 
select  sysdate , EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO  from  emp   where empno = :new.empno;
delete from  emp where empno = :new.empno;
end if ; 
end;


جزاك الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/