الانتقال إلى المحتوى

اضافة مفتاح اساسي


AL BASSAM

Recommended Posts

السلام عليكم
يا اخوة في عندي مشكلة وهي اضافة مفتاح اساسي او با الاحرى تعديل حيث انه يوجد عندي جدول فيه اربعة حقول والان المفاتح الاساسي مكون من حقلين والان اريد ان يكون المفتاح الاساسي مكون من 3 حقول فكيف يمكني ان اقوم بهذا التعديل والجدول الذي تم تكوينه هو

create table country(
Cod_Country  varchar2(6),
Name_Country varchar2(20),
Cod_City     varchar2(4),
Name_City    varchar2(20),
constraint country_pk primary key (Cod_Country,Cod_City)
);


والان اريد ان اضيف الى المفتاح الاساسي اسم المدينة بحيث يكون المفتاح الاساسي مكون من 3 حقول با الشكل التالي

primary key (Cod_Country,Cod_City,Name_City)

علما بان الجدول الان فية بيانات ولا اريد حذفها
ارجو ان اكون وضحت المشكلة وجزاكم الله خيرا

رابط هذا التعليق
شارك

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

أخى الكريم فى هذه الحاله يمكن عمل drop للconstraints ثم إضافتها من جديد .

alter table country
drop constraints country_pk



ثم:-

alter table country
add constraints country_pk primary key(code_country,code_city,name_city)



ولكن يوجد ملحوظه مهمه فى هذا الموضوع وهى إنك بتقول إن فى data بالفعل فى الجدول .
مش هيبقى فى مشكله لو البيانات اللى فى الجدول مؤهله إنها تكون compound primary key فى هذه الحاله هيعمل validate ومفيش مشكله .
أما إذا كانت البيانات الموجوده فى الجدول غير مهيئه إنها تكون compound primary key .

إذاً يوجد هنا حلان :-
الأول : إما تعمل delete لهذه الأعمده وتعيد كتابة البيانات مره ثانيه بعد تعديل الconstraints وهذا فى حالة إن البيانات كميه صغيره .
الثانى : لو كانت البيانات كميه كبيره إذاً ممكن عند إضافه الconstraints تخليها novalidate

alter table country
add constraints country_pk primary key(code_country,code_city,name_city) novalidate


وهنا هيتجاهل البيانات القديمه وهيعمل enable للبيانات اللى
هتدخل بعد كده بس طبعا دى فيها مشكله بالنسبه لعمليات الquery وغير ذلك.

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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