يتضمن السيناريو جدول MySQL حيث يعمل عمود المعرف كحقل زيادة تلقائية للمرئيات الراحة، بينما يعمل عمود memberid كمفتاح فريد فعلي. ومع ذلك، فإن محاولة تعريف الجدول باستخدام المفتاح الأساسي (معرف العضو) تؤدي إلى خطأ (1075) يفيد بأنه لا يمكن أن يكون هناك سوى عمود تلقائي واحد ويجب أن يكون مفتاحًا.
لحل المشكلة، من الممكن أن يكون لديك عمود متزايد تلقائيًا ليس هو المفتاح الأساسي، بشرط تحديد فهرس (مفتاح) عليه. إليك تعريف الجدول المعدل:
CREATE TABLE members (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
memberid VARCHAR(30) NOT NULL,
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
firstname VARCHAR(50) NULL,
lastname VARCHAR(50) NULL,
PRIMARY KEY (memberid),
KEY (id) # or: UNIQUE KEY (id)
) ENGINE = MYISAM;
من خلال إضافة مفتاح أو فهرس مفتاح فريد في عمود المعرف، يتم الحفاظ على وظيفة الزيادة التلقائية بينما يصبح عمود معرف العضو هو المفتاح الأساسي، مما يسمح باستعلامات فعالة بناءً على قيمة معرف العضو.
يعتمد الاختيار الأفضل على الأهمية النسبية للأداء ومساحة القرص. إذا كان الأداء أمرًا بالغ الأهمية، فإن الحفاظ على عمود المعرف المتزايد تلقائيًا واستخدام فهرس على معرف العضو يوفر التوازن:
ومع ذلك، إذا كانت مساحة القرص مصدر قلق كبير، ففكر في إزالة عمود المعرف تمامًا والاعتماد على عمود معرف العضو باعتباره المفتاح الأساسي والتلقائي. - مجال متزايد. يضحي هذا النهج ببعض الأداء من أجل تحسين استخدام المساحة. في النهاية، يعتمد الاختيار بين الأداء والمساحة على المتطلبات المحددة للتطبيق.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3