الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة في تريقر

Featured Replies

بتاريخ:

يا شباب اريد ان اسألكم

عند جدولين m و b عملت تريقر عندما ادخل بيانات في m تدخل مباشرة في b

بس عندي مشكلة صغيرة عندي بيانات مكررة في جدول m ولا اريد ان تتكرر في جدول b

بمعنى عندما ادخل رقم 101 مثلا لاول مرة اريد هذه البيانات ان تدخل جدول b بس عندما ادخل هذا الرقم مرة اخرى في جدول m لا اريده ان يدخل في جدول b


بمعنى اريد جدول m تتكرر فيه البيانات بينما جدول b لا


يا شباب اريد الحل لاني تعبت وانا اكتب الكود لاحل هذه المشكلة ولكن بلا جدوى

ومشكوررين على الجهود الطيبة

بتاريخ:

المشكلة سهلة الحل فقط تابع معي خطوة بخطوة

لنفرض ان هذا الجدول هو M:

create table m(
m_id number(10),
m_name varchar2(10));



و أن الجدول الأخر هو B :

create table b(
b_id number(10),
b_name varchar2(10))



المطلوب أدخال البيانات نفسها التي في جدول M ولكن دون تكرار في جدول B .

1- نعمل function تقوم بفحص جدول B لكي لا تتكرر القيم :

 create or replace function check_b(id_num number) return number
 is
 v_count number:=0;
 begin
 select count(*) into v_count from m
 where m_id=id_num;
 return(v_count+0);
 end;



2- نعمل trigger وندمج معاه function :

 create or replace trigger insert_to_b
 before insert  on m
 for each row
 begin
 if check_b(:new.m_id)>=1 then
 dbms_output.put_line('you cant insert same record than once');
 else
insert into b values (:new.m_id,:new.m_name);
end if;
end;



جرب الطريقة وخبرني ......................................

بتاريخ:
  • كاتب الموضوع

مشكور اخي الكريم على هذه الاكواد
وجزاك الله خير

بس لو سمحت اريدك ان تشرح لي الFUNCTION اذا تكرمت

بتاريخ:

حاضر راح اشرح الـ function :

تستقبل function بارميتر وهذا الباراميتر يتم تمريره من خلال trigger في السطر

if check_b(:new.m_id)>=1 then



بعد إستقبال الباراميتر تقوم function بعملية الفحص إذا كان السجل قد تم إدخاله مسبقا في جدول m

فإذا رجعت function بقيمة معناه أنه يوجد سجل أو اكثر يحمل نفس قيمة البارميتر(مما يؤدي لعدم إدخال البيانات في جدول b )
أما إذا لم ترجع function بقيمة معناه انه لايوجد سجل في جدول m يحمل نفس قيمة البارميتر(مما يؤدي لإضافة البيانات في جدول b )

أتمنى أن تكون الفكرة واضحة ...................

بتاريخ:
  • كاتب الموضوع

مشكوور يا أخي
وجزاك الله خير الجزاء

بتاريخ:

شكر ا أخي عبد اللطيف لحضورك

بتاريخ:

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

اخي الكريم sky information

جزاك الله كل خير وبارك لك في اعمالك

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.