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

طريقة تعريف الـ Foreign Key

Featured Replies

بتاريخ:

الرجاء من الأخوه مساعدتي في مشكله تواجهني وهي طريقة تعريف الـ foreign key كاملا
لاننه يطلع لي غلط
وانا كاتبته بهذا الشكل

foreign key (C_SSN) references Customer (SSN) on delete set null on update cascade

والاوراكل اللي عندي اوراكل 10g

انتظر الرد لأن التسليم يوم السبت

و جــــــــــــــــــــــزاكم الله خير :)

بتاريخ:

بسم الله الرحمن الرحيم


السلام عليكم
بعد التحية والأحترام
اليك المثال التالى للتوضيح وهو ايضا على اوركال 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

بتاريخ:

السلام عليكم الأخ السائل
طريقة الأخ 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 و أعطي نفس النتيجة

بالتوفيق

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

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

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

يعني وأنا اعمل انشاء للجدول مااكتب الـ FOREIGN KEY

يعني اول انشأ الجدول بعدين اعمل ALTER للجدول
كذا صحيح!!!

بتاريخ:

السلام عليكم
الأخ الكريم
يمكن استخدام اي من الطريقتين لانشاء ال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 
)


بالتوفيق

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

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

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

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

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

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.