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;
}
War es hilfreich?

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
scroll top