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

هل من الممكن إنشاء تيبل يتكون من رو واحد


عمرو

Recommended Posts

تحياتي للجميع

يوجد العديد من الطرق ومنها ان تضع عن ماحولتها الاضافة مثلاً

select count(code) into :text1. from emp;

if :text = 1 then
message 'لايمكن اضافة اكثر من سجل';
....
...

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

شكرا اخى توفى
على هذا الكود الفعال و لاكن كنت اسئل إن كان يمكن هذا عند بناء التيبول على الداتا بيز ام لا
على اى حال هذا الكود يفى بالغرض و انا اشكرك مره اخرى يا اخى العزيز



اخوك عمرو

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

الاخ عمرو جرب هذا الكود انا جربته و زبط :
اعمل trigger على التيبل كما يلي :

create or replace trigger bef_ins
before insert on khalid
declare
tot number ;
begin select count(*)
  into tot from khalid; if tot >= 1 then
   raise_application_error(-20222,'You cants insert more than one record 

at this table') ;
end if ;
end ;
/


بحيث khalid هو اسم التيبل هنا
عند اضافة اكثر من record يعطي ال error التالي :

ORA-20222: You cants insert more than one record at this table
ORA-06512: at "UNIV.BEF_INS", line 8
ORA-04088: error during execution of trigger 'UNIV.BEF_INS'

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

مشكور اخي خالد علي هذا الكود
ولكن الا تعتقد انه لن يعمل بسبب table mutation
حيث انك تقوم بعمل سلكت من جدول يتم الادخال به
وشيئ اخر هذا الزناد علي ليس علي مستوي كل صف
معني ذلك انه من اول مره يمكن عمل ادخال لعدد لانهائي من الصفوف بدون ان يتحرك الزناد
لانه يعمل مره واحده فقط عند ارسال مجموعة جمل insert وليس for each row
الحل يكمن في وضع ريكور واحد فقط في الجدول ثم كتابة زناد يمنع عملية الادخال او الديليت
حيث يسمح ب التعديل فقط

create or replace trigger bef_ins
before  inaert on khalid
for each row
raise_application_error(-20222,'You cants insert in this table') ;
end;


create or replace trigger bef_del
before  delete on khalid
for each row
raise_application_error(-20222,'You cants delete from this table') ;
end;


او استخدام if inserting , if deleting , في تريجر واحد
او تريجر واحد علي مستوي الادخال و المسح
الحلول كثيرة
مع تمنياتي بالتوفيق

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

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

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

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

×   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.

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

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

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