بتاريخ: 14 فبراير 200818 سنة comment_122449 السلام عليكميا اخوة في عندي مشكلة وهي اضافة مفتاح اساسي او با الاحرى تعديل حيث انه يوجد عندي جدول فيه اربعة حقول والان المفاتح الاساسي مكون من حقلين والان اريد ان يكون المفتاح الاساسي مكون من 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) علما بان الجدول الان فية بيانات ولا اريد حذفهاارجو ان اكون وضحت المشكلة وجزاكم الله خيرا تقديم بلاغ
بتاريخ: 14 فبراير 200818 سنة comment_122451 بسم الله الرحمن الرحيمأخى الكريم فى هذه الحاله يمكن عمل 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 وغير ذلك. تقديم بلاغ
بتاريخ: 15 فبراير 200818 سنة كاتب الموضوع comment_122483 شكرا اخي احمد.. ولكن واجهتني مشكلة وهي ان هذا الجدول الذي اريد التعديل علية مرتبط بجدول ااخر ولم اسطيع حذف ال constraints تقديم بلاغ
بتاريخ: 15 فبراير 200818 سنة comment_122493 ممكن تعمل drop للconstraints بتاعة الforeign key أولاً ثم الconstraints بتاعة الprimary key وبعد كده تعيد تخليق الconstraints بتاعة الprimary key ثم الforeign key تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.