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

ارجو المساعدة بخصوص Sequences


sonic

Recommended Posts

السلام عليكم ورحمة الله وبركاته

ال Sequences يعادل ال AutoNumber في ال Access

ولكن لدي ملاحظه لماذا عند اضافته مثلا لجدول وهو

Insert Into STUDENT  Values( 'Ahmad',SEQ_NO_TESTING.NextVal)


سوف يظهر الاسم بهذه الطريقة
1 Ahmad

وعند اضافة اكثر من اسم سوف يكون النتائج هكذا (مع العلم ان زيادة ال Sequences ب 1 في كل مرة يتم فيها الاضافة)

Ahmad 1
Hadi 2
Aziz 3
Saleh 4
Hani 5

وسؤالي هو تخيلو معي عند حذف اسم Hani من الجدول ومن ثم اضافة اسم جديد وهو Omar سوف تكون النتائج كالتالي
Ahmad 1
Hadi 2
Aziz 3
Saleh 4
Omar 6 لماذا عمر رقم 6 الا توجد طريقة لعمل عمر رقم 5 ؟؟

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

بارك الله فيكم

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

اخي الكريم فعلا افضل طريقه لعمل هذا التسلسل هو عمل التالي

كـود SQLselect max(coulm_name+1 ) into coulm_name from dual ;
when-create-record or pre-insert  
وهذان هما الtrigger  الي ممكن تنفز فيهم



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

السلام عليكم..

هذه طريقة و لكن دون استخدام Sequence

create or replace trigger tri_seq
before insert on emp
for each row
declare
cursor cur is select empno from emp order by empno;
Pcount number:=0;
Pcounter number:=1;
begin select count(empno) into Pcount from emp;
if Pcount=0 then :new.empno:=1;
else
for rec in cur loop
if rec.empno<>Pcounter then
:new.empno:=Pcounter;
return;
else Pcounter:=Pcounter+1;
:new.empno:=Pcounter;
end if;
end loop;
end if;
end;
/
رابط هذا التعليق
شارك

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

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

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

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

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

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

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