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

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

صورة
- - - - -

استفسار: كيف أعمل عمود Auto Increment مرتبط بقيمة عامود آخر


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

#1 eabdul

eabdul

    عضو

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

تاريخ المشاركة 28 February 2011 - 03:39 AM

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

أرجو المساعدة في هذا الخصوص أخواني الكرام

و لتوضيح المشكله، خذوا المثال التالي:

-عندي حقلين، الكتاب، و رقم النسخه.

كتاب -------- رقم النسخة
قصص قصيرة -------- 1
قصص قصيرة -------- 2
قصص قصيرة -------- 3
قصص قصيرة -------- 4
العالم اليوم -------- 1
العالم اليوم -------- 2
حقائق مكذوبه -------- 1
حقائق مكذوبه -------- 2

و هكذا

بحيث يكون العمود "رقم النسخه" يتزايد تلقائياً طالما ان اسم الكتاب هو نفسه، و يعيد العد من جديد تلقائياً عند تغير اسم الكتاب.

اعرف ان هذا يتم من خلال عمل Sequence ولكن لا اعرف كيف أقوم بعمل ربط بين الحقلين لتحقيق مبتغاي.

جزاكم الله خير

#2 eslam4444

eslam4444

    عضو نشط

  • الأعضــاء
  • 444 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:football,swimming,design,PlayStation,web developer,,

تاريخ المشاركة 28 February 2011 - 06:24 AM

بسم الله الرحمن الرحيم
انشأ الجدول
create table book(
book_name   varchar2(20),
book_number number(6));
بعد ذلك انشا sequence
create sequence t1
 start with 1
 increment by 1
 maxvalue 100
 nocache
 nocycle;
بعد ذلك استدعى sequence بواسطه
select t1.nextval
into :book_number
from book;
وذلك مع ملاحظه استخدام تريجر pre-insert عند استخدامك للكود السابق
  • eabdul معجب بهذا

mcts||''||oca||''||ocp||askpc expert

I hope soon successful Ceh


متغيب مؤقتا


#3 mtalmasri

mtalmasri

    عضو

  • الأعضــاء
  • 9 مشاركة
  • الاهتمامات:Oracle Apps DBA

تاريخ المشاركة 28 February 2011 - 09:34 AM

Or use this .....
select nvl(max(book_number),0) + 1
into :book_number
from book
where  book_name = :book_name ;

  • eabdul معجب بهذا

#4 eabdul

eabdul

    عضو

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

تاريخ المشاركة 02 March 2011 - 01:53 AM

جزاكم الله خير يا إخواني..

انا عاجز عن الشكر..

هل يمكن القيام بهذا بإستخدام ميثود؟ (member function)؟

و جزاكم الله خير