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

كيف احل هذا الخطا في الtrigger


nan740

Recommended Posts

قمت باضافة سجل الى الجدول الرئيسي واسمه p_data بعد ذلك

انشئت هذا الترايجر

create or replace trigger ins_pdata 
after insert or delete or update on p_data
for each row
begin if inserting then 
  insert into attendants (att_p_no) values(:new.p_no);
  insert into saintary_Data (saint_p_no) values(:new.p_no);
  insert into services (serv_p_no) values(:new.p_no);
  insert into accounts (acc_p_no) values(:new.p_no);
  insert into payments (pay_p_no) values(:new.p_no);
  insert into RETURN_JOURNEY (re_p_no) values(:new.p_no);
  insert into going_journey (go_p_no) values(:new.p_no);
  insert into going_journey_edit (go_e_p_no) values(:new.p_no);
  insert into return_journey_edit (re_e_p_no) values(:new.p_no);
  insert into services_edit (ser_e_p_no) values(:new.p_no);
  insert into p_image (ima_p_no) values(:new.p_no);
  insert into users (user_p_no) values(:new.p_no);
 elsif deleting then
  delete from attendants where att_p_no=:old.p_no;
  delete from saintary_data where saint_p_no=:old.p_no;
  delete from services where serv_p_no=:old.p_no;
  delete from accounts where acc_p_no=:old.p_no;
  delete from payments where pay_p_no=:old.p_no;
  delete from going_journey where go_p_no=:old.p_no;
  delete from going_journey_edit where go_e_p_no=:old.p_no;
  delete from return_journey where re_p_no=:old.p_no;
  delete from return_journey_edit where re_e_p_no=:old.p_no;
  delete from services_edit where ser_e_p_no=:old.p_no;
  delete from p_image where ima_p_no=:old.p_no;
  delete from users where user_p_no=:old.p_no;
 elsif updating then 
  update attendants set att_p_no=:new.p_no where att_p_no=:old.p_no;
  update saintary_data set saint_p_no=:new.p_no where saint_p_no=:old.p_no;
  update services set serv_p_no=:new.p_no where serv_p_no=:old.p_no;
  update accounts set acc_p_no=:new.p_no where acc_p_no=:old.p_no;
  update payments set pay_p_no=:new.p_no where pay_p_no=:old.p_no;
  update return_journey set re_p_no=:new.p_no where re_p_no=:old.p_no;
  update return_journey_edit set re_e_p_no=:new.p_no where re_e_p_no=:old.p_no;
  update going_journey set go_p_no=:new.p_no where go_p_no=:old.p_no;
  update GOING_JOURNEY_EDIT set go_e_p_no=:new.p_no where go_e_p_no=:old.p_no;
  update SERVICES_EDIT set ser_e_p_no=:new.p_no where ser_e_p_no=:old.p_no;
  update P_IMAGE set ima_p_no=:new.p_no where ima_p_no=:old.p_no;
  update USERS set user_p_no=:new.p_no where user_p_no=:old.p_no;
 end if;

exception when no_data_found then
null;
end;




وتم الانشاء بدون اي اخطاء
بعدين عندما حاولت الاضافه مره اخرى ظعرت لي رسالة الخطا التاليه

ORA-01400: لا يجوز ادارج في null ("PLGS"."ATTENDANTS"."ATT_NO"
ORA-06512: عند "PLGS.INS_PDATA", line 3
ORA-04088: ظهر خطا اثناء تنفيذ الزناد PLGS.INS_PDATA'

وبالتالي لم استفد من هذا trigger ومن عملة افيدوني بحل هذه المشكلة'

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
اخي فالله
بعد التحية
اعتقد ان انت عندك مشكله في الحقل ATT_NO في جدول ال attendants معمول NOT NULL وانت ما بترسله من التريجر
فام تقوم بعمل قيمة افتراضيه لل الحقل ATT_NO بجدول attendants
او عمل INSERT له فالتريجر بقيمة معينه مثلا صفر

اتمني ان تجد ضالت في هذه السطو ر المتواضعه
وفقك الله الى ماتحب ويرضي
ابقي علمني بالنتيجه اشتغلت او مااشتغلت

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية