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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


4 رد (ردود) على هذا الموضوع

#1 sonic

sonic

    مشترك

  • الأعضــاء
  • 69 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 March 2009 - 06:06 AM

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

ال 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 ؟؟

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

بارك الله فيكم
سبحان الله والحمد لله ولا اله الا الله والله أكبر
استغفر الله الذي لا إله إلا هو الحي القيوم وأتوب اليه
اللهم اغفر لي ولوالدي ولجميع المسلمين والمسلمات والمؤمنين والمؤمنات الاحياء منهم والاموات
اللهم صل وسلم على النبي محمد
اللهم أعطي الناس ضعف ما يتمنوه لي من خير

#2 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 795 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 23 March 2009 - 09:50 PM

أخي العزيز المفروض عند الاضافة تأخذ Max للرقم وتقوم اضافة عليه واحد قبل الاضافة

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#3 ahmedkhaled

ahmedkhaled

    عضو نشط

  • الأعضــاء
  • 264 مشاركة
  • الاسم الأول:Ahmed
  • اسم العائلة:Khaled
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle developer

تاريخ المشاركة 24 March 2009 - 01:50 AM

اخي الكريم فعلا افضل طريقه لعمل هذا التسلسل هو عمل التالي
كـود SQL
select max(coulm_name+1 ) into coulm_name from dual ;
when-create-record or pre-insert
وهذان هما الtrigger الي ممكن تنفز فيهم



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

#4 TROYMAN

TROYMAN

    مشترك

  • الأعضــاء
  • 107 مشاركة

تاريخ المشاركة 24 March 2009 - 02:21 PM

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

هذه طريقة و لكن دون استخدام 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;
/


<<اللهم لا علـم لنا إلا ما علّمتنا إنك أنت العليــم الحكيــم>>
<<اللهم علّمنا ما ينفعنا و انفعنا بما علّمتنا و ازدنا علماً>>



Programmer (C#.Net,C++,ASP) & Oracle Developer


#5 sonic

sonic

    مشترك

  • الأعضــاء
  • 69 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 March 2009 - 11:11 PM

جزاكم الله كل خير اخواني الكرام بارك الله فيكم على هذه المساعدة الجميلة
سبحان الله والحمد لله ولا اله الا الله والله أكبر
استغفر الله الذي لا إله إلا هو الحي القيوم وأتوب اليه
اللهم اغفر لي ولوالدي ولجميع المسلمين والمسلمات والمؤمنين والمؤمنات الاحياء منهم والاموات
اللهم صل وسلم على النبي محمد
اللهم أعطي الناس ضعف ما يتمنوه لي من خير