• 0

كيف أحل هذه المشكلة في Mysql؟

حاولت إنشاء جداول في قاعدة بيانات من نوع Mysql وذلك بإتباع التعليمات من الموقع الرسمي، هذا ما كتبته من كود:

create table department
(dept_name      varchar(20), 
 building       varchar(15), 
 budget             numeric(12,2),
 primary key (dept_name)
);

create table course
(course_id      varchar(8), 
 title          varchar(50), 
 dept_name      varchar(20),
 credits        numeric(2,0),
 primary key (course_id),
 foreign key (dept_name) references department
);

فيظهر لي هذا الخطأ كرسالة:

ERROR 1005 (HY000): Can't create table 'test.course' (errno: 150)

ما الحل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

سبب الخطأ في عدم إعطاء المصدر -references- بشكل جيد، حيث أنك ذكرت اسم الجدول فقط، في حين يتوجب عليك ذكر اسم الحقل أيضاً، لأنه وكما تعلم فالجدول يتوفر على أكثر من حقل، وليس بالضرورة أن يكون  الحقل المعرِّف -PrimaryKey- هو المصدر في جدول آخر، أي أن الكود الصحيح هو:

create table department
(dept_name      varchar(20), 
 building       varchar(15), 
 budget             numeric(12,2),
 primary key (dept_name)
);

create table course
(course_id      varchar(8), 
 title          varchar(50), 
 dept_name      varchar(20),
 credits        numeric(2,0),
 primary key (course_id),
 foreign key (dept_name) references department(dept_name)
);

Using FOREIGN KEY Constraints

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن