elemento dbindex

Modelo de conteúdo

dbindex:==keyfield

Atributos

  • @_operation (cadeia de caracteres)
  • @applicableIf (cadeia de caracteres)
  • @label (cadeia de caracteres)
  • @name (MNTOKEN)
  • @unique (booleano)

Pais

<element>

Crianças

<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 Index geralmente segue a definição do elemento schema principal.

A ordem dos <keyfield> elementos definidos em um <dbindex> é muito importante. O primeiro <keyfield> deve ser o critério de indexação no qual os queries 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 de criação de índice: "CusSample_myIndex".

Descrição do atributo

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

    Esse atributo é usado principalmente na extensão de schemas prontos para uso.

    Os valores acessíveis são:

    • "nenhum": apenas a reconciliação. Isso significa que o 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 o Adobe Campaign atualizará o elemento ou o criará se ele não existir.
    • "inserir": inserção. Isso significa que o Adobe Campaign inserirá o elemento sem verificar se ele existe.
    • "update": atualizar. Isso significa que o Adobe Campaign atualizará o elemento ou gerará um erro se ele não existir.
    • "delete": exclusão. Isso significa que o Adobe Campaign recuperará e excluirá elementos.
  • applicableIf (cadeia de caracteres): condição para considerar o índice - recebe uma expressão XTK.

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

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

  • exclusivo (booleano): se essa opção estiver ativada (@unique="true"), o atributo garantirá a exclusividade do índice em seus campos.

Exemplos

Criação de um índice no campo "id". (o atributo "@unique" no <dbindex> O elemento aciona a adição da palavra-chave SQL "EXCLUSIVA" 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