Question

J'ai ce schéma que je dois définir deux clés primaires; on est le champ « vid » de Drupal et l'autre est mon domaine de site « offre » qui est de type incrémentation automatique qui à son tour exige d'être une clé primaire: wtherwise que je reçois MySQL erreur. Je vais avoir la syntaxe de recherche de la difficulté pour définir plusieurs clés primaires dans un schéma Drupal. Si quelqu'un peut me aider avec la syntaxe, je l'apprécie à peu près.

$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;
}
Était-ce utile?

La solution

En utilisant ce qui suit fonctionnait très bien pour moi. Peut-être qu'il est une limitation spécifique à la version MySQL? Pouvez-vous faire rapport le message d'erreur réel que vous avez quand Drupal a essayé de créer ce tableau?

$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'),
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top