elemento dbindex dbindex--element
Modelo de conteúdo content-model-3
dbindex:==keyfield
Atributos attributes-3
- @_operation (string)
- @applicableIf (string)
- @label (string)
- @name (MNTOKEN)
- @unique (booleano)
Pais parents-3
<element>
Derivados children-3
<keyfield>
Descrição description-3
Esse elemento permite definir um índice vinculado a uma tabela.
Uso e contexto de uso use-and-context-of-use-3
É possível definir vários índices. Um índice pode fazer referência a um ou mais campos da tabela. A declaração de índice geralmente segue a definição do elemento de esquema principal.
A ordem dos elementos <keyfield>
definidos em um <dbindex>
é muito importante. O primeiro <keyfield>
deve ser o critério de indexação no qual as consultas se baseiam principalmente.
O nome do índice no banco de dados é calculado pela concatenação do nome da tabela e do nome do índice. Por exemplo: Nome de tabela "Sample", Namespace "Cus", nome de índice "MyIndex"-> nome do campo de índice durante a criação do índice consultando: "CusSample_myIndex".
Descrição do atributo attribute-description-3
-
_operation (string): define o tipo de gravação no banco de dados.
Esse atributo é usado principalmente ao estender schemas prontos para uso.
Os valores acessíveis são:
- "none": apenas reconciliação. Isso significa que o Adobe Campaign recuperará o elemento sem atualizá-lo ou gerar um erro se ele não existir.
- "insertOrUpdate": atualização com inserção. Isso significa que o Adobe Campaign atualizará o elemento ou o criará se ele não existir.
- "insert": inserção. Isso significa que o Adobe Campaign inserirá o elemento sem verificar se ele existe.
- "update": atualização. 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.
-
rótulo (cadeia de caracteres): rótulo de índice.
-
nome (MNTOKEN): nome de índice exclusivo.
-
unique (boolean): se essa opção estiver ativada (@unique="true"), o atributo garante a exclusividade do índice em todos os seus campos.
Exemplos examples-3
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 (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);
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);