اذهب إلى المحتوى

السؤال

نشر

حاولت إنشاء جداول في قاعدة بيانات من نوع 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)

ما الحل؟

Recommended Posts

  • 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

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

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

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...