بتاريخ: 28 يناير 201610 سنة comment_270769 سلام عليكم ورحمة الله لاحظت على تريقر NEW_EMP_DEPT عندما يقوم بادخال سجل جديد لجدول NEW_EMPS من المفترض تلقائيا يقوم بتحديث بيانات جدول NEW_DEPTS وكذلك في عملية المسح او تعديل حقل SALARY ..فان عملية الادخال تتم وتنفذ لكن التعديل والمسح لا ينفذ..علما بانه لاتوجد رسالة خطأ. ارجو المساعدة مشكورين. كود التريقر: CREATE OR REPLACE TRIGGER NEW_EMP_DEPT INSTEAD OF INSERT OR UPDATE OR DELETE ON EMP_DETAILS for each row BEGIN IF INSERTING THEN INSERT INTO NEW_EMPS VALUES(:NEW.EMPLOYEE_ID,:NEW.LAST_NAME,:NEW.SALARY,:NEW.DEPARTMENT_ID); UPDATE NEW_DEPTS SET DEPT_SAL=DEPT_SAL+:NEW.SALARY ; WHERE DEPARTMENT_ID=:NEW.DEPARTMENT_ID ELSIF DELETING THEN DELETE FROM NEW_EMPS ; WHERE EMPLOYEE_ID=:OLD.EMPLOYEE_ID UPDATE NEW_DEPTS SET DEPT_SAL=DEPT_SAL-:OLD.SALARY ; WHERE DEPARTMENT_ID=:OLD.DEPARTMENT_ID ELSIF UPDATING('SALARY') THEN UPDATE NEW_EMPS SET SALARY=:NEW.SALARY ; WHERE EMPLOYEE_ID=:OLD.EMPLOYEE_ID UPDATE NEW_DEPTS (SET DEPT_SAL=DEPT_SAL+(:NEW.SALARY-:OLD.SALARY) ;WHERE DEPARTMENT_ID=:OLD.DEPARTMENT_ID ELSIF UPDATING('DEPARTMENT_ID')THEN UPDATE NEW_EMPS SET DEPARTMENT_ID=:NEW.DEPARTMENT_ID ;WHERE EMPLOYEE_ID=:OLD.EMPLOYEE_ID UPDATE NEW_DEPTS SET DEPT_SAL=DEPT_SAL-:NEW.SALARY ; WHERE DEPARTMENT_ID=:OLD.DEPARTMENT_ID UPDATE NEW_DEPTS SET DEPT_SAL=DEPT_SAL+:NEW.SALARY ; WHERE DEPARTMENT_ID=:NEW.DEPARTMENT_ID ;end if ;end تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.