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

ما الخطأ في إستعلام CHECK لدي ؟

Hend Abdalla

السؤال

أحاول إضافة عمود "size" لجدول "orders" حيث أن القيم التي يجب أن يأخذها هذا العمود هي واحدة من : ‘s’, ‘m’, ‘l’, ’xl’ 

أي الخطأ في الشيفرة التي أحاول تنفيذها ؟ 

ALTER TABLE orderr 
ADD COLUMN size varchar(20);
CHECK (size in("s","e","l","xl"));

 

scr.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يحددث هذا بسبب أن لديك خطأ في السياق العام لإضافة إستعلام قيد CHECK ، فالشكل العام لإستعماله يكون كالتالي : 

ALTER TABLE [table_name]
ADD CONSTRAINT [check_name]
  CHECK ([column_name] IN ('check1', 'check2', 'check3' ... ));

حيث أن : 

  • table_name : يعبر عن اسم الجدول الحاوي للعمود المستهدف . 
  • check_name : يعبر عن اسم القيد الذي تحاول إضافته . 
  • column_name : يعبر عن اسم العمود المستهدف . 
  • ما داخل القوسين يعبر عن القيد و شرطه .

ففي المثال الذي لديك يجب أن يوجد كالتالي : 

ALTER TABLE orders 
   ADD CONSTRAINT size_check 
CHECK (size IN ("s", "e", "l", "xl"));

ليصبح كامل الإستعلام كالتالي : 

ALTER TABLE 
  ADD COLUMN size varchar(255);
  
ALTER TABLE posts 
  ADD CONSTRAINT size_check 
  CHECK (size IN ("s", "e", "l", "xl"));

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...