élément key

Modèle de contenu

key:==keyfield

Attributs

  • @allowEmptyPart (boolean)
  • @applicableIf (string)
  • @internal (boolean)
  • @label (string)
  • @name (MNTOKEN)
  • @noDbIndex (boolean)

Parents

<element>

Enfants

<keyfield>

Description

Cet élément permet de définir une clef permettant d'identifier un enregistrement de la table.

Une table doit posséder au moins une clef.

Usage et contexte d'utilisation

Par convention, les clefs sont déclarées après la déclaration de l'élément principal du schéma et à la suite des déclarations d'index.

Une clé est connue sous le nom de composite si elle comprend plusieurs champs (plusieurs <keyfield> enfants, par exemple). N’utilisez pas de clé composite pour définir une clé primaire.

Si l'élément principal du schéma contient l'attribut "@autopk=true" alors la clef primaire est unique. Une seule clef primaire doit être déclarée par schéma.

Les 1000 premiers identifiants sont réservés donc si une plage de valeurs doit être définies pour les clefs, il faut la commencer après la valeur 1000.

Description des attributs

  • allowEmptyPart (boolean): dans le cas d'une clef composite, si cet attribut est activé, la clef est considérée comme valide si au moins une des clefs composant la clef composite n'est pas vide. Dans ce cas, la notion de valeur vide est "0" (booléen ou pour tous les types de données numériques). Par défaut, toutes les clefs d'une clef composite doivent être remplies.
  • applicableIf (string): cet attribut permet de rendre la clef optionnelle. Il définit la condition d'applicabilité de la définition de la clef. Cet attribut reçoit une expression XTK.
  • internal (boolean): s'il est activé, cet attribut signifie à Adobe Campaign que la clef est primaire.
  • label (string): libellé de la clef.
  • name (MNTOKEN): nom interne de la clef.
  • noDbIndex (boolean): s'il est activé (noDbIndex="true"), le champ correspondant à la clef ne sera pas indexé.

Exemples

Déclaration d'une clef composite autorisant un des deux champs la composant "@expr" ou "@alias" à être vide:

<key name="node" allowEmptyPart="true">
  <keyfield xpath="@expr"/>
   <keyfield xpath="@alias"/>
 </key>

Déclaration d'une clef primaire sur le champ « Name » de type STRING dans <srcschema> et la requête SQL correspondante :

 
<key name="PrimaryKey" internal="true">  
  <keyfield xpath="@name"/>
</key>

CREATE UNIQUE INDEX Schema_PrimaryKey ON Schema(sName);

Sur cette page