我有这个模式,我需要定义两个主要键。一个是Drupal的“ VID”字段,另一个是我的站点“ BID”字段,该字段是自动增量类型,依次要求它是主要键:wtherwise我会遇到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'),  //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