سؤال

لدي هذا المخطط الذي أحتاجه لتحديد مفتاحين أساسيين ؛ أحدهما هو حقل "Vid" لـ Drupal والآخر هو حقل عرض "موقعي" الذي يتكون من نوع الزيادة التلقائية والذي يتطلب بدوره أن يكون مفتاحًا أساسيًا: wtherwise أحصل على خطأ MySQL. أواجه مشكلة في العثور على بناء جملة لتحديد مفاتيح أساسية متعددة في مخطط دروبال. إذا كان بإمكان أي شخص مساعدتي في بناء الجملة ، فأنا أقدر ذلك كثيرًا.

$schema['rft'] = array(
    'fields' => array(
        'vid' => array(
            'type' => 'int',
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
        ),
        'nid' => array(
            'type' => 'int',
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
        ),
        'bid' => array(
            'type' => 'serial',
            'size' => 'medium',
            'not null' => TRUE,                         
        ),

    ),
    'indexes' => array(
        'nid' => array('nid'),
    ),
    'primary key' => array('vid'),  //array('vid','bid') doesn't work
);

return $schema;
}
هل كانت مفيدة؟

المحلول

باستخدام ما يلي يعمل بشكل جيد بالنسبة لي. ربما يكون قيودًا خاصة بإصدار MySQL؟ هل يمكنك الإبلاغ عن رسالة الخطأ الفعلية التي حصلت عليها عندما حاول Drupal إنشاء هذا الجدول؟

$schema['rft'] = array(
    'fields' => array(
        'vid' => array(
            'type' => 'int',
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
        ),
        'nid' => array(
            'type' => 'int',
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
        ),
        'bid' => array(
            'type' => 'serial',
            'size' => 'medium',
            'not null' => TRUE,                         
        ),

    ),
    'indexes' => array(
        'nid' => array('nid'),
    ),
    'primary key' => array('vid', 'bid'),
);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top