الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ عند ادخال بيانات الجدول

بدأه Do0odi في 12 مايو 2011 · 3 رد · 1,506 مشاهدة · في قسم لغة الاستفسارات SQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا مبتدئة بعالم الاوراكل وال sql

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

create TABLE PATIENTSSERVICE(
PID	          varchar2(5)  Not Null,
SERVICEID         varchar2(5)   Not Null,
SDATE             date Not null,
SPRICE             number(5) Not null,
AMOUNT            number(15),
SERAMOUNT          number(4) ,
TOTAL             number(9),
CONSTRAINT 	PATIENTSSERVICE_Pk PRIMARY KEY(PID,SERVICEID , SDATE , SPRICE),
CONSTRAINT      PATIENTSSERVICE_PID_FK FOREIGN KEY (PID)
REFERENCES PATIENTS(PID));

create TABLE SERVICES(
SERVICEID         varchar2(5)   Not Null,
Service_NAME      varchar2(30)   ,
PRICE             number(5)Not Null,
CONSTRAINT 	  SERVICES_Pk PRIMARY KEY(SERVICEID,PRICE ));

لما ابغى اضيف بيانات داخل الجدول مثلاً :

INSERT INTO PATIENTSSERVICE
 VALUES  ('P1','s1','5-Mar-2010',200,1,200,200);

يطلع لي الخطأ التالي

ERROR at line 1:

ORA-02291: integrity constraint (SCOTT.PATIENTSSERVICE_PID_FK) violated -

parent key not found

وابغى اسأل سؤال اخر اللي هو : الجدول الاول مثل ماقلت لكم يحتوي على اربع برايمري كي اثنين منهم فورين لجدول ثاني ولما اسوي alter

ALTER TABLE PATIENTSSERVICE
ADD CONSTRAINT    PATIENTSSERVICE_SERVICEID_FK FOREIGN KEY (SERVICEID)
REFERENCES SERVICES(SERVICEID);

ALTER TABLE PATIENTSSERVICE
ADD CONSTRAINT    PATIENTSSERVICE_PRICE_FK FOREIGN KEY (SPRICE)
REFERENCES SERVICES(PRICE);

يظهر لي الخطاأ التالي :

ERROR at line 3:

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

ياليت اللي عنده الاجابه يسعفني فيها لانه هذا واجب تسليمه يوم السبت . واتمنى اني قدرت اوصل اسئلتي صح

مشكوورين مقدماً

تم تعديل هذه المشاركة بواسطة Do0odi في 13 مايو 2011 في 09:53

#2
ORA-02291: integrity constraint (SCOTT.PATIENTSSERVICE_PID_FK) violated -
parent key not found

هالخطأ معناه ان المفتاح الـ foreign فارغ ! أو غير موجود

تأكد من عدم خلو هذا الحقل ، ثم أضف على الجدول PATIENTSSERVICE مع التأكد من المفتاح foreign

واستخدم الطريقة :

insert into table_name (field1,field2) values(1,2);

أو أدخل البيانات بترتيب الحقول الموجود بالجدول ، إن كنت تبقى على طريقتك.

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

تعني ان المفتاح الأساسي غير موجود !

تحياتي.

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 13 مايو 2011 في 04:01

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

مشكوور على ردكـ

بس بالنسبة للخطأ الاول اعتقد انه مو شايف الفورين كي لاني لسه ماسويت لها رفرنس بسبب الخطأ الثاني اللي مو راضي يخليني اسوي التر يعني لو حليت المشكلة الثانيه ان شاء الله راح اقدر اضيف البيانات .

وبالنسبة للسؤال الثاني : مع اني معرفه الاربع البرايمري كي وموجود ليه هو مو شايفه . هل طريقتي بتعريف اكثر من برايمري كي صحيحه يعني كذا بس احط بينهم فاصله .؟

#4

مرحبا Do0odi

اولا بالنسبة للأستفسار الأول وهو:- طريقتي بتعريف اكثر من برايمري كي صحيحه يعني كذا بس احط بينهم فاصله..؟

الأجابة:- نعم صحيح مدام انك كاتب الأمر صحيح واسماء العواميد صحيح..

ثانيا بالنسبه للكود "الأول"

PATIENTS(PID) أنا بسألك سؤال .. هل هناك table اسمه patients اسمه pid وعليه primary key وهو varchar2(5)

والسؤال الثاني هل تعرف ما معنى primary key ?? البرامري يجمع كلمة not null اذا لماذا كتبته في بداية الكود .. وكتبت تحت انه برامريكري..؟؟

والبنسبه الى اضافة المعلومات. أنت قلت ان SDATE date Not null صحيح.؟؟

اذا في ادخال المعلومات على لا يوضع بين ' ' هذا خطأ.. الأن صيغته date

وتدخل المعلومات كالتالي عليها

to_date('05.03.2010','dd.mm.yyyy')

وللعلم هذا عيد ميلادي XDDD

ونفس الخطأ الموجود في الكود الأول موجود بالكود الثاني ل table SERVICES

ال SERVICEID اهو حاطه تحت primary key حاطه فوق not null ليش..؟

وبالكود الأخير وهو تعديل الخاصية تأكد من جدول اسمه SERVICES الي موجود فيه (SERVICEID) هل هو مطابق للشروط الموجوده في جدول PATIENTSSERVICE عامود (SERVICEID) ؟؟ مثل هل هو number (نفس العدد) وعليه primary key ??

ارجوا ان تكون المعلوم قد وصلت لك اخي بالصوره الصحيح وشكرا...

تم تعديل هذه المشاركة بواسطة MrLoNeLY في 19 مايو 2011 في 23:08

مواضيع مشابهة