بتاريخ: 6 مايو 200718 سنة comment_99047 مثال في جدول EMPأريد عمل trigger عند القيام بأدخال رقم موظف في جدول emp موجود يقوم بحذف سجيل هذا الموظف وأدخال السجيل الجديد تقديم بلاغ
بتاريخ: 7 مايو 200718 سنة comment_99130 السلام عليكم ورحمة الله وبركاتهاخي الكريم الـ 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; جزاك الله كل خير تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.