élément dbindex dbindex--element
Modèle de contenu content-model-3
dbindex:==keyfield
Attributs attributes-3
- @_operation (string)
- @applicableIf (string)
- @label (string)
- @name (MNTOKEN)
- @unique (boolean)
Parents parents-3
<element>
Enfants children-3
<keyfield>
Description description-3
Cet élément permet de définir un index associé à une table.
Usage et contexte d’utilisation use-and-context-of-use-3
Il est possible de définir plusieurs index.Un index peut référencer un ou plusieurs champs de la table.La déclaration de l’index suit généralement la définition de l’élément de schéma principal.
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 dans la base de données est calculé en concaténant le nom de la table et le nom de l’index.Par 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 : « CusSample_myIndex ».
Description des attributs attribute-description-3
-
_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.Cela signifie qu’Adobe Campaign récupérera l’élément sans le mettre à jour ou renverra une erreur s’il n’existe pas.
- « insertOrUpdate » : mise à jour avec insertion.Cela signifie qu’Adobe Campaign mettra à jour l’élément ou le créera s’il n’existe pas.
- « insert » : insertion.Cela signifie qu’Adobe Campaign insérera l’élément sans vérifier s’il existe.
- « update » : mise à jour.Cela signifie qu’Adobe Campaign mettra à jour l’élément ou renverra une erreur s’il n’existe pas.
- « delete » : suppression.Cela signifie qu’Adobe Campaign retrouvera et supprimera 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 examples-3
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);