بتاريخ: 4 يناير 200719 سنة comment_88404 الرجاء من الأخوه مساعدتي في مشكله تواجهني وهي طريقة تعريف الـ foreign key كاملا لاننه يطلع لي غلط وانا كاتبته بهذا الشكلforeign key (C_SSN) references Customer (SSN) on delete set null on update cascadeوالاوراكل اللي عندي اوراكل 10gانتظر الرد لأن التسليم يوم السبت و جــــــــــــــــــــــزاكم الله خير تقديم بلاغ
بتاريخ: 4 يناير 200719 سنة comment_88416 بسم الله الرحمن الرحيم السلام عليكمبعد التحية والأحتراماليك المثال التالى للتوضيح وهو ايضا على اوركال 10), CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id دا طبعا فى جدول الموضفين CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id),والله ولى التوفيقوفوق كل ذى علم عليممحمد نور الدين[email protected]oracle developer 10g تقديم بلاغ
بتاريخ: 4 يناير 200719 سنة comment_88420 السلام عليكم الأخ السائل طريقة الأخ SMART ANGEL هي الصحيحة بالنسبة لتعريف الFOREIGN KEY و لكن أحببت أن اضيف بعض الأشياء فلا يوجد في تعريف الFOREIGN KEY CONSTRAINT جملة ON UPDATE CASCADE فقط ON DELETE و المثال التالي يوضح لك SQL> ALTER TABLE SCOTT.EMP ADD 2 CONSTRAINT emp_dept_fk 3 FOREIGN KEY (DEPTNO) 4 REFERENCES SCOTT.DEPT (DEPTNO) ON DELETE SET NULL ON UPDATE CASCADE; REFERENCES SCOTT.DEPT (DEPTNO) ON DELETE SET NULL ON UPDATE CASCADE * يوجد خطأ عند سطر 4: ORA-01735: اختيار ALTER TABLE غير صالح SQL> ALTER TABLE SCOTT.EMP ADD 2 CONSTRAINT emp_dept_fk 3 FOREIGN KEY (DEPTNO) 4 REFERENCES SCOTT.DEPT (DEPTNO) ON DELETE CASCADE; تم تبديل جدول و لكن فهمت من الأخ السائل انه يريد عند تعديل مثلا رقم الادارة DEPT NO ان يتم تعديل رقم الادارة في الموظفين ايضا و يمكن تحقيق ذلك عن طريق التريجر الاتي CREATE OR REPLACE TRIGGER UPDATE_DEPTNO BEFORE UPDATE OF DEPTNO ON SCOTT.DEPT REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN UPDATE EMP SET DEPTNO=:NEW.DEPTNO WHERE EMP.DEPTNO=:OLD.DEPTNO; EXCEPTION WHEN OTHERS THEN RAISE; END UPDATE_DEPTNO; و ملحوظة أخيرة :اصدار قاعدة البيانات هو Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Productionو لم أعمل علي قاعدة بيانات 10G من قبل و يرجي توضيح ممكن عمل عليها ان كان هذا الكلام اختلف فيها ام لا ملحوظة أخري : تم تجربة ما سبق علي قاعدة البيانات 10 G و أعطي نفس النتيجة بالتوفيق تم تعديل 5 يناير 200719 سنة بواسطة hanon_OCP تقديم بلاغ
بتاريخ: 4 يناير 200719 سنة كاتب الموضوع comment_88444 جزاكم الله خيرايعني وأنا اعمل انشاء للجدول مااكتب الـ FOREIGN KEYيعني اول انشأ الجدول بعدين اعمل ALTER للجدولكذا صحيح!!! تقديم بلاغ
بتاريخ: 4 يناير 200719 سنة comment_88458 السلام عليكم الأخ الكريم يمكن استخدام اي من الطريقتين لانشاء الFOREIGN KEY فيمكن إنشاء الجدول اولا ثم عمل ALTER للجدول و انشاء و اضافة الCONSTRAINTS او إنشاء الجدول و انشاء الCONSTRAINT في نسف الوقت و بحملة واحدة ضمن جملة الCREATE TABLE هكذا CREATE TABLE SCOTT.EMP_COPY ( EMPNO NUMBER(4,0) NOT NULL, ENAME VARCHAR2(10 BYTE) NULL, JOB VARCHAR2(9 BYTE) NULL, MGR NUMBER(4,0) NULL, HIREDATE DATE NULL, SAL NUMBER(7,2) NULL, COMM NUMBER(7,2) NULL, DEPTNO NUMBER(2,0) NULL, CONSTRAINT EMP_DEPT_FK FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO) ON DELETE SET NULL ) بالتوفيق تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.