【发布时间】:2010-08-16 21:34:07
【问题描述】:
我有这个架构,我需要定义两个主键;一个是 Drupal 的 'vid' 字段,另一个是我的站点 'bid' 字段,它是自动递增类型的,这反过来又要求它是主键:否则我会收到 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;
}
【问题讨论】:
-
你能说得更具体点吗?什么不起作用?
-
我不确定是否可以定义多个主键。事实上,我确信这是不可能的。您可以定义由多个列组成的单个主键,但 Drupal 可能没有任何语法来表达...
-
@Mark Trapp:我遇到了 mysql 错误。在成员 Dave 的建议下,我再次尝试了它,它又可以工作了。可能我在某个地方犯了错误。
标签: drupal primary-key drupal-schema