题
我有这个模式,我需要定义两个主要键。一个是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'),
);
不隶属于 StackOverflow