الانتقال إلى المحتوى
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.

Sql Trigger

Featured Replies

بتاريخ:

لدي ثلاث جداول اريد عمل إضافة مباشرة في الجدول الثالث عن طريق الجدولين t1 & t2 على نفس id

 

create table t1

(id number (5),

name varchar2(9),

sname varchar(9));

 

 

create table t2

( id number(5),

dept number(5));

 

create table t3

(id number(5),

name varchar2(9),

dept number(5));

 

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

ملاحظة id    primary key

بتاريخ:

امتي ؟

لما يحصل ايه ؟

 

ملحوظة : اقرأ عن التريجرز الاول وعن :new, هتوصل اسهل وهتفهم

تم تعديل بواسطة eslam elbyaly

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

هلا اخوي اسلام

 امتى ؟

اول ما يتم إضافة بيانات في الجدولين

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

بتاريخ:

اكتب الكود الي جربته

بتاريخ:

create or replace trigger ins_into_t3 after insert on t1
for each row
begin
insert into t3(id) values (:new.id) ;
end ;

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

create trigger t3_t1

( after insert into t1

for each row

insert into t3( id) values (:new.id)

end;

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

المشكلة

انه بمجرد حفظ بيانات الجدول الأول يتم الحفظ تلقائي في الجدول الثالث

اما الجدول الثاني يحفظ في أيضا لكن المشكلة لا يحفظ تحت نفس ال id

 

اريد التعديل في الكود حتى تحفظ تحت نفس الاي دي إضافة where للكود

تم تعديل بواسطة أبو علاء

بتاريخ:

وضح شوية يا ابو علاء , هو انت دخلت داتا اصلا في الجدول t2 ؟

هيحفظ ايه بقى , ولا ازاي ؟

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

بالبلدي

الجدول الأول يحفظ البينات في الجدول الثالث تماااام  اخترت منها علشان تنحفظ في الجدول الثالث id & name

والجدول الثاني يحفظ في الاجدول الثالث تماااااااااام  اخترت منها علشان تنحفظ في الجدول الثالث dept

المشكلة الdept ما تنحفظ تحت الid & name هي تروح لوحدها محفوظة بدون id & name

ان شاء الله وصلت المعلومة

بتاريخ:

يا باشا هو انت اصلا قلتله لما يعمل انسرت في الجدول التاني , يبقى يعمل انسرت في الثالث , انت مجبتش سيرة الجدول التاني في التريجر اصلا .

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

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

انا نسيت انزل التريقر الثاني

create trigger t3_t2(

after insert into t2

for each row

insert into t3(dept) values (:new.dept)

end;

بتاريخ:

الله يسامحك يا ابو علاء , انت شككتني في نفسي ,

ولسة برده الكلام مش واضح , بس بالنظر كده يعني , انت شكلك عايز تعمل update table t3 لما تعمل انسرت في الجدول التاني , مش تعمل انسرت . والله اعلم .

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

هههههههههههه

يعطيك الف عافية بشمهندس اسلام

انا قلت لك ان الانسرت شغال معايا تمام

بس عندي مشكلة انا ابغى البيانات من الجدولين تندرج تحت الاي دي نفسه لان الجدول الثاني يحفظ الديبت نمبر لوحده مع ان الاي دي نفسه في الجدول الأول والثاني

 

insert into t1 values (1,'ahmed','hassan');

insert into t2 values (1,10);

بس في الجدول الثالث ما تنحفظ كلها تحت تحت الاي دي 1

باختصار عندي مشكلة في التريقر في تحديد الحفظ في مكان الحقل

 

معليش تعبتك معايا ^_^

بتاريخ:

بص بقى يا ابو علاء , انا تهت منك بصراحة , وكده مش هتوصل الا علي دخلة رمضان .

الي انا فاهمه انك بتعمل الآتي ,

بتعمل جملة انسرت في T1 , يقوم التريجر بتاعه يضرب , فينزل ريكورد في T3 , وبعدين

تعمل جملة انسرت تانية في T2 , فالتريجر يضرب , يقوم ينزل ريكورد (تااااااني) في T3 , وده الطبيعي .

عشان كده بقلك مع التريجر الي علي T2 انت عايز جملة UPDATE مش INSERT , جرب كده بقى وشوف انت فهمت ايه , ولو موصلتش ,

 

 

انا عايزك بقى في ردك الجاي , تقولي التريجر الاول كذا والتاني كذا , وانا عملت جملة انسرت علي الجدول الاول بتقول كذا وواحدة ع الجدول التاني بتقول كذا والي حصل كذا وكذا وكذا .

اديني case كاملة عشان افهمك , (كاااااااملة) .

وربنا ييسر

تم تعديل بواسطة eslam elbyaly

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

انا مشكلتي بس التريقر عايز اعمل فيه كلمة where على id بحيت عند الإضافة من الجدولين يكون في الجدول الثالث وقت ما اعمل اكسكيوت يعني يكون البيانات كدا في الجدول الثالث

id=1

name=ahmed

dept=10

%%%%%%%%%%%%%%%%%%%%%%%

id   مضافة من الجدول الأول والثاني  بس ما رح تتكرر لانه برايميري كي

name   مضافة من الجدول الاول

dept  مضافة من الجدول الثاني

 

ارجو ان الفكرة وصلت

وشاكر لك مرة اخرى

بتاريخ:

UPDAAAAAAAAAAAAAAAATE , انت محتاج UPDATE NOT INSERT

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

o.k

كذا انا فهمت عليك

بس طلب صغييير

ممكن كود الابديت لاني ما اعرف كيف اعمله

بتاريخ:

يا رااااااجل , عنيه يا سيدي , بس نصيحة لما حاجة تقف أدامك ابحث الاول بدل ما تستني حد يرد عليك , اكتب في جوجل ORACLE SQL UPDATE STATEMENT

 

UPDATE TABLE SET COLUMN = VALUE ,

COLUMN2 = VALUE

, COLUMN3 = VALUE

WHERE CONDITION

مثال

UPDATE T3 SET NAME= 'AHMED' WHERE ID = 5

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

تسلم يا باشا

 

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

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

 

ميرسيه يا بشمهندس

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

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

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

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

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

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.