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