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

سؤال عن الـ Primary Key والـ Foreign Key

Featured Replies

بتاريخ:

السلام عليكم

بس عندي استفسار ...

اذا عندي جدول معين مثلا جدول أنواع الأصناف فيه حقلين ( رقم النوع ، اسم النوع ) وكلا الحقلين primary key

وعندي جدول اخر للأصناف فيه عدة حقول ( رقم الصنف ، نوع الصنف ، سعره....الخ

هل ينفع انه اخلي حقل نوع الصنف في هذا الجدول يكون foreign key يرجع لحقل اسم النوع في الجدول الأول

بالرغم انه الجدول الاول في اثنين PK



بمعنى ... هل يجوز انه حقل في جدول ما يكون مفتاح اجنبي لحقل مفتاح رئيسي في جدول اخر رغم انه الجدول فيه اكثر من مفتاح رئيسي ..
والمفتاح الاجنبي فقط يرجع لمفتاح واحد فيهم ...

ولا راح يعتبر مخالف لقاعدة التنميط اللي تقول ازالة الاعتماد على جزء من المفتاح الرئيسي...؟؟؟؟!



اتمنى اني اكون وضحت الاستفسار بشكل صحيح ...

وارجو اني القى جواب سريع

جزاكم الله كل خير [وسط][/وسط]

بتاريخ:

SQL> ed
Wrote file afiedt.buf

 1* create table hh ( id number primary key , name varchar2(9) primary key )
SQL> /
create table hh ( id number primary key , name varchar2(9) primary key )
													   *
ERROR at line 1:
ORA-02260: table can have only one primary key



هل انت متأكد اصلاً انه ينفع يكون فيه اكتر من primary key فى الجدول الواحد ؟؟؟؟؟

ORA-02260: table can have only one primary key

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

بتاريخ:

فعلا الجدول الواحد لازم مفتاح رئيسى واحد ان وجد لا اكثر ولكن ربما كان المفتاح الرئيسى الواحد يشمل اكثر من عمود فى الجدول كلهم مع بعض يعطوا المفتاح الرئيسى

بتاريخ:
فعلا الجدول الواحد لازم مفتاح رئيسى واحد ان وجد لا اكثر ولكن ربما كان المفتاح الرئيسى الواحد يشمل اكثر من عمود فى الجدول كلهم مع بعض يعطوا المفتاح الرئيسى


كلامك صح ..... هو بيقبل على مستوى الجدول مش على مستوى العمود ..... كما فى الكود التالى :-

SQL> create table oug2 (
 2  id number,
 3  name varchar2(11),
 4  dd date,
 5  email varchar2(99),
 6  constraint oug2_pk primary key (id,email));

Table created.

SQL> desc oug2
Name                                      Null?    Type
----------------------------------------- -------- ------------
ID                                        NOT NULL NUMBER
NAME                                               VARCHAR2(11)
DD                                                 DATE
EMAIL                                     NOT NULL VARCHAR2(99)



انا حاولت اربط ذى ما الاخ ( شمعة حزن ) ما قال ...... لكن هذا ما حدث :-

1  create table oug3 (
 2  id number ,
 3  salary number,
 4  constraint oug3_fk foreign key (salary)
 5* references oug2(id))
SQL> /
references oug2(id))
               *
ERROR at line 5:
ORA-02270: no matching unique or primary key for this column-list



دورت على هذا الخطاء فى ال Knowledge Xpert for PLSQL وهذا ما حصلت عليه :-

Oracle Product Document Library © Oracle Corporation


Manual: Oracle Database Error Messages Manua10.1 Reference: B10744-01

ORA-02270: no matching unique or primary key for this column-list


Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement gives a column-list for which there is no matching unique or primary key constraint in the referenced table.

Action: Find the correct column names using the ALL_CONS_COLUMNS catalog view



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

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

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

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

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

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

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.