بتاريخ: 1 مايو 201015 سنة comment_190878 مرحباالسلام عليكمهل يمكننا ان نكتب تريجر يجمع بين امرين؟مثلا لدي جدولان يوجد باحدها forign key من الجدول الاخرواريد مثلا منع حذف اي صف من الجدول الاساسي وكذلك منع اي تعديل على احد attributeالخاصه فيه لنفرض مثلا name ..هل يمكن جمع هذان الشرطان مع بعض؟؟ام احتاج لعمل 2trigger احدهما يمنع الحذف والاخر يمنع تعديل الاسم؟؟ تقديم بلاغ
بتاريخ: 2 مايو 201015 سنة comment_190913 سؤالك رائع والاجابة يمكن لكن سأترك لك مساحة التفكير في كيفية عمل ذلك بنفسك لكنه مؤكد يمكن ولك أن تعلم في عالم البرمجة Your Limitation is your imaginationأتركك مع مثال لذلك وبالتوفيق SQL> SQL> SQL> SQL> CREATE TABLE myTable1 (a INTEGER, b CHAR(10)); Table created. SQL> SQL> CREATE TABLE myTable2 (c CHAR(10), d INTEGER); Table created. SQL> SQL> SQL> CREATE TRIGGER trig1 2 AFTER INSERT ON myTable1 3 REFERENCING NEW AS newRow 4 FOR EACH ROW 5 WHEN (newRow.a <= 10) 6 BEGIN 7 INSERT INTO myTable2 VALUES(:newRow.b, :newRow.a); 8 END trig1; 9 Trigger created. SQL> SQL> insert into myTable1 values(1,'a'); 1 row created. SQL> insert into myTable1 values(2,'b'); 1 row created. SQL> SQL> select * from myTable1; A B ---------- ---------- 1 a 2 b SQL> select * from myTable2; C D ---------- ---------- a 1 b 2 SQL> SQL> drop table myTable1; Table dropped. SQL> drop table myTable2; Table dropped. SQL> تقديم بلاغ
بتاريخ: 2 مايو 201015 سنة كاتب الموضوع comment_190955 شكرا جزيلا استاذي الفاضل سررت كثيرا بأن هناك من رد على سؤالي بالنسبة للكود الذي وضعته فهمته قمت بتعبئه بيانات الجدول الثاني بعد تعبئة الجدول الاول باستخدام نفس القيم لكني لم استطع تفسير سؤالي بناء على مااوضحت لي فمثلا لو قمت بعمل CREATE OR REPLACE TRIGGER trg_deltest BEFORE DELETE ON test FOR EACH ROW WHEN (OLD.name = 1) BEGIN raise_application_error (-20100, 'You can not delete '); END; / هنا استطيع منع اي حذف يتم بناء على الشرط لكن عملية الجمع بين منع الابديت على متغير محدد مثل النيم ومنع حذف اي صف من نفس الجدول لم اتوصل لها الى الان مثلا على افتراض انه قام المستحدم بمحاولة حذف اي صف بناء على متغير اخر غير name !!!!!!!!!!!!!! فلو كنت ارغب منع الحذف او التعديل على نفس المتغير فهذا سهل ان شاء الله لكن هنا اجد اشكالا اتمنى ان تتحمل اسئلتي التي قد ترى انها تافهه بعض الشيء او صعوبة استيعابي لاني مبتدئه في هذا الامر ولك جزيل الشكر تقديم بلاغ
بتاريخ: 3 مايو 201015 سنة كاتب الموضوع comment_191043 شكرا لك تم حل المشكلة ولله الحمد شكرا مرة اخرى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.