élément dbindex

Modèle de contenu

dbindex:==keyfield

Attributs

  • @_operation (string)
  • @applicableIf (string)
  • @label (string)
  • @name (MNTOKEN)
  • @unique (boolean)

Parents

<element>

Enfants

<keyfield>

Description

Cet élément permet de définir un index associé à une table.

Usage et contexte d'utilisation

Il est possible de définir plusieurs index. Un index peut référencer un ou plusieurs champs de la table. Généralement, la déclaration des index suit la définition de l'élément principal du schéma.

L'ordre des éléments <keyfield> définis dans un <dbindex> est très important. Le premier <keyfield> doit être le critère d'indexation sur lequel reposent principalement les requêtes.

Le nom de l'index en base est calculé par concaténation du nom de la table et du nom de l'index. Exemple : Nom de la table : "Sample", Espace de noms : "Cus", nom de l'index : "MyIndex" - nom du champ de l'index lors de la requête de création de l'index en table : "CusSample_myIndex".

Description des attributs

  • _operation (string): définit le type d'écriture dans la base.

    Cet attribut est principalement utilisé lors d'une extension de schéma usine.

    Les valeurs accessibles sont:

    • "none" : Réconciliation seule. Signifie qu'Adobe Campaign va retrouver l'élément sans le mettre à jour ou générer une erreur s'il n'existe pas.
    • "insertOrUpdate" : Mise à jour avec insertion. Signifie qu'Adobe Campaign va mettre à jour l'élément ou le créer s'il n'existe pas.
    • "insert" : Insertion. Signifie qu'Adobe Campaign va insérer l'élément sans vérifier s'il existe.
    • "update" : Mise à jour. Signifie qu'Adobe Campaign va mettre à jour l'élément ou générer une erreur s'il n'existe pas.
    • "delete" : Suppression. Signifie qu'Adobe Campaign va retrouver et supprimer l'élément.
  • applicableIf (string): condition de prise en compte de l'index - reçoit une XTK expression.

  • label (string): libellé de l'index.

  • name (MNTOKEN): nom unique de l'index.

  • unique (boolean): si cette option est activée (@unique="true"), alors cet attribut garantie l'unicité de l'index sur l'ensemble des champs qui le composent.

Exemples

Création d’un index sur le champ « id ». (L’attribut « @unique » sur l’élément <dbindex> déclenche l’ajout du mot clé SQL « UNIQUE » lorsque l’index est créé dans la base de données (requête)).

<element label="Sample" name="Sample">
  <dbindex name="myIndex" label="My index on the ID field" unique="true" applicableIf="HasPackage('nms:social')">
      <keyfield xpath="@id"/>
  </dbindex>
    <attribute name="id" type="long"/>
</element>          
ALTER TABLE CusSample ADD iSampleId INTEGER;
UPDATE CusSample SET iSampleId = 0;
ALTER TABLE CusSample ALTER COLUMN iSampleId SET Default 0;
ALTER TABLE CusSample ALTER COLUMN iSampleId SET NOT NULL; 
CREATE UNIQUE INDEX CusSample_myIndex ON CusSample(iSampleId);

Création d'un index composite sur les champs "@mail" et "@phoneNumber":

<element label="NewSchemaUser" name="NewSchemaUser">
  <dbindex name="myIndex" label="My composite index">
         <keyfield xpath="@email"/>
         <keyfield xpath="@phone"/>
  </dbindex>
  
  <attribute name="email" type="string"/>
  <attribute name="phone" type="string"/>
</element>      
CREATE INDEX DocNewSchemaUser_myIndex ON DocNewSchemaUser(sEmail, sPhone);

Sur cette page