elemento dbindex

Modelo de contenido

dbindex:==keyfield

Atributos

  • @_operation (cadena)
  • @applyIf (cadena)
  • @label (cadena)
  • @name (MNTOKEN)
  • @unique (booleano)

Principales

<element>

Niños

<keyfield>

Descripción

Este elemento permite definir un índice vinculado a una tabla.

Uso y contexto de uso

Es posible definir varios índices. Un índice puede hacer referencia a uno o varios campos de la tabla. La declaración de índice suele seguir la definición del elemento de esquema principal.

El orden de los <keyfield> elementos definidos en un <dbindex> es muy importante. El primer <keyfield> debe ser el criterio de indexación en el que se basan principalmente las consultas.

El nombre del índice en la base de datos se calcula concatenando el nombre de la tabla y el nombre del índice. Por ejemplo: Nombre de tabla "Ejemplo", Área de nombres "Cus", nombre de índice "MyIndex"-> nombre del campo de índice durante la consulta de creación de índice: "CusSample_myIndex".

Descripción del atributo

  • _operation (cadena): define el tipo de escritura en la base de datos.

    Este atributo se utiliza principalmente al ampliar los esquemas predeterminados.

    Los valores accesibles son:

    • "ninguno": solo reconciliación. Esto significa que Adobe Campaign recuperará el elemento sin actualizarlo o generando un error si no existe.
    • "insertOrUpdate": actualizar con inserción. Esto significa que Adobe Campaign actualizará el elemento o lo creará si no existe.
    • "insertar": inserción. Esto significa que Adobe Campaign insertará el elemento sin comprobar si existe.
    • "actualización": actualización. Esto significa que Adobe Campaign actualizará el elemento o generará un error si no existe.
    • "eliminar": eliminación. Esto significa que Adobe Campaign recuperará y eliminará los elementos.
  • applyIf (cadena): condición para tener en cuenta el índice: recibe una expresión XTK.

  • label (cadena): etiqueta de índice.

  • nombre (MNTOKEN): nombre de índice único.

  • único (booleano): si esta opción está activada (@unique="true"), el atributo garantiza la exclusividad del índice en todos sus campos.

Ejemplos

Creación de un índice en el campo "id". (el atributo "@unique" en el elemento <dbindex> déclencheur que agregan la palabra clave SQL "ÚNICA" cuando el índice se crea en la base de datos (consulta)).

<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);

Creación de un índice compuesto en los campos "@mail" y "@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);

En esta página