بتاريخ: 16 سبتمبر 201312 سنة comment_240219 انا عامل trigger علشان اي تعديل يحصل في جدول الموظفين يتسجل في جدول تاريخ الموظفين ... بس للاسف لما اجي اعدل مش بيرضي و بيديني خطا في الtrigger ممكن حد يقولي الخطا فين ؟؟؟ create or replace trigger staff_his_update after update on staff begin insert into staff_history (staff_his_id , his_staff_grade , his_staff_group , his_staff_vanguard , his_staff_vanguard_grade , his_staff_registry , his_staff_id, his_staff_update_date ) values (sraff_his_id_seq.nextval , staff.staff_grade.old , staff.staff_group.old , staff.staff_vanguard.old , staff.staff_vanguard_grade.old, staff.staff_registry.old , staff.staff_id.old , sysdate) where staff.staff_id = staff.staff_id.old ; end; تم تعديل 16 سبتمبر 201312 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 16 سبتمبر 201312 سنة comment_240220 بغض النظر عن تركيبة الجداول لكن اولا عدل السطر قبل الاخير الى where staff_id = :old.staff_id تقديم بلاغ
بتاريخ: 16 سبتمبر 201312 سنة كاتب الموضوع comment_240239 هو فعلا مكنش شايف المتغير بتاع ال old بس لما حطيت " : " و فهمة قالي انة مينفعش استخدم المتغيرات " old / new " في trigger علي مستوي الجدول لو حد عندة حال او حتي يقولي اعمل الفكرة دي ازاي ... و الفكرة عبارة عن انا عاوز اي تغير في بيانات الموظف يتسجل في جدول تاريح الموظف ... ممكن حد يساعدني تقديم بلاغ
بتاريخ: 1 أكتوبر 201312 سنة comment_240675 بص يا كبير لازم علشان تستخدم old لازم يكون التريجر من النوع for each row تضاف هذه الجمله قبل begin ثانبا تستخدم هكذا old.staff_grade: بدون كتابة اسم الجدول لأنه مذكور فى التريجر تقديم بلاغ
بتاريخ: 8 أكتوبر 201312 سنة comment_240842 أهلا بك أخي ، أولا حاول تغيير الحدث من بعد إلى قبل after update on staff = before update on staff ثانيا : اكتب إسم الحقل مسبوقا بـ new: لتخزين القيم الجديدة، أما في حالة أردت تخزين القيمة السابقة استخدم old: ولكم الأفضل دائما إستخدام new: أنت تقوم بعمل جدول لحفظ التغيرات الحاصلة على الموظفين ، وفي هذه الحالة عند تسجيل أي موظف سيتم تسجيله في الجدول الأساسي و أيا الجدول الإحتياطي (History Table - Log Table ) وعند أي تغيير سيتم التغيير في الدو الأساسي مع إدخال سجل جديد في الجدول الإحتياطي. insert into staff_history (staff_his_id , his_staff_grade , his_staff_group , his_staff_vanguard , his_staff_vanguard_grade , his_staff_registry , his_staff_id, his_staff_update_date ) values (sraff_his_id_seq.nextval , :new.staff.staff_grade.old , :new.staff.staff_group.old , :new.staff.staff_vanguard.old , :new.staff.staff_vanguard_grade.old, :new.staff.staff_registry.old , :new. staff.staff_id.old , sysdate) أرجو أن أكون قد وفقت في شرح الفكرة. تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.