سؤال

حاولت إنشاء حقل ك TINYINT(1), NOT NULL و DEFAULT قيمة ال -1 للإشارة إلى "غير معروف" ، لكنني حصلت على هذا الخطأ من موكلي:

خطأ تغيير طاولتي: لديك خطأ في بناء جملة SQL الخاص بك ؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك لاستخدام بناء الجملة الأيمن بالقرب من "في السطر 1

حاولت أيضًا صنع الطول 2 وحصلت على نفس الرسالة

التخمين TINYINT أليس نوع البيانات الصحيح لهذا النوع من التعيين ، ولكن ما هو؟

تحرير: لقد جعلتها تعمل بعد قراءة تعليق إد كوتريل. أعتقد أنه كان هناك شخصية إضافية في مكان ما ، هنا كان البيان الذي تم إنشاؤه موكلي (باستخدام Querious for Mac):

ALTER TABLE `DBName`.`MyTable`
CHANGE COLUMN `MyColumn` `MyColumn` TINYINT(1) NOT NULL DEFAULT -1  COMMENT ''
AFTER `MyOtherColumn`;

لاحظت ذلك COMMENT هناك وتأكد من أن كل شيء كان نظيفًا.

تم تقدير تعليقات وإجابات أخرى ؛ لقد قررت السماح NULL يعني غير معروف في هذه الحالة

هل كانت مفيدة؟

المحلول

أعتقد أنه يجب عليك تخزين هذا قليلاً (إذا كنت تهتم بحجم التخزين) ، ودع NULL يعني "غير معروف".

field bit(1) default NULL,

يبدو من الغريب أن نعلن أن الحقل not null ثم الحصول على قيمة خاصة ، يعني بشكل أساسي NULL.

تعديل:

بناء الجملة التالي "يعمل" SQL Fiddle:

create table t (
  val int,
  flag tinyint(1) default -1
 );

"الأعمال" في عروض أسعار لأن القيمة الافتراضية تطبع على أنها "1" بدلاً من "-1"-بعد كل شيء ، (1) يقول فقط طباعة رقم واحد.

ربما في بعض الإصدارات السابقة من MySQL ، فإنه يولد خطأ عندما يرى ذلك -1 لن يتم عرضها بشكل صحيح. (لأكون صادقًا ، من شأنه أن يفاجئني.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top