dbindex element

Modelo de conteúdo

dbindex:==keyfield

Atributos

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

Pais

<element>

Filhos

<keyfield>

Descrição

Esse elemento permite definir um índice vinculado a uma tabela.

Uso e contexto de uso

É possível definir vários índices. Um índice pode fazer referência a um ou mais campos da tabela. A declaração de índice segue normalmente a definição do elemento principal do schema.

A ordem dos elementos <keyfield> definidos em <dbindex> é muito importante. O primeiro <keyfield> deve ser o critério de indexação no qual os query se baseiam principalmente.

O nome do índice no banco de dados é calculado concatenando o nome da tabela e o nome do índice. Por exemplo: Nome da tabela "Amostra", Namespace "Cus", nome do índice "MyIndex"-> nome do campo de índice durante a consulta da criação do índice: "CusSample_myIndex".

Descrição do atributo

  • _operation (cadeia de caracteres): define o tipo de gravação no banco de dados.

    Este atributo é usado principalmente ao estender schemas prontos para uso.

    Os valores acessíveis são:

    • "nenhum": apenas reconciliação. Isso significa que a Adobe Campaign recuperará o elemento sem atualizá-lo ou gerar um erro se ele não existir.
    • "insertOrUpdate": atualizar com inserção. Isso significa que a Adobe Campaign atualizará o elemento ou o criará se ele não existir.
    • "Inserir": inserção. Isso significa que a Adobe Campaign inserirá o elemento sem verificar se ele existe.
    • "update": atualizar. Isso significa que a Adobe Campaign atualizará o elemento ou gerará um erro se ele não existir.
    • "delete": exclusão. Isso significa que a Adobe Campaign recuperará e excluirá elementos.
  • applyIf (string): condição para levar em conta o índice - recebe uma expressão XTK.

  • label (string): rótulo do índice.

  • name (MNTOKEN): nome de índice exclusivo.

  • único (booleano): se essa opção estiver ativada (@unique="true"), o atributo garante a exclusividade do índice em todos os campos.

Exemplos

Criação de um índice no campo "id". (o atributo "@unique" no elemento <dbindex> aciona a adição da palavra-chave SQL "UNIQUE" quando o índice é criado no banco de dados (query)).

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

Criação de um índice composto nos campos "@mail" e "@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);

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free