Mehrere Primärschlüssel in einem Schema
-
29-09-2019 - |
Frage
Ich habe dieses Schema, das ich brauche zwei Primärschlüssel zu definieren; ist Drupal ‚vid‘ Feld und das andere ist meine Seite ‚Angebot‘ Feld, das von Autoinkrement Typ ist, der wiederum erfordert es ein Primärschlüssel zu sein: wtherwise I get MySQL Fehler. Ich habe Probleme beim Auffinden Syntax für mehrere Primärschlüssel in einem Drupal-Schema zu definieren. Wenn mir jemand mit der Syntax helfen kann, ich es ziemlich viel zu schätzen wissen.
$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;
}
Lösung
die folgende Verwendung funktionierte gut für mich. Vielleicht ist es eine MySQL-Version spezifische Einschränkung? Können Sie die tatsächliche Fehlermeldung berichten Sie bekam, wenn Drupal diese Tabelle zu erstellen versucht?
$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'),
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow