dbindex元素 dbindex--element

内容模型 content-model-3

dbindex:==keyfield

属性 attributes-3

  • @_operation(字符串)
  • @applicableIf(字符串)
  • @label(字符串)
  • @name (MNTOKEN)
  • @unique(布尔型)

父项 parents-3

<element>

子项 children-3

<keyfield>

说明 description-3

利用此元素,可定义链接到表的索引。

使用和使用环境 use-and-context-of-use-3

可以定义多个索引。 一个索引可以引用表的一个或多个字段。 索引声明通常遵循主架构元素的定义。

<dbindex>中定义的<keyfield>元素的顺序非常重要。 第一个<keyfield>必须是查询所主要依据的索引条件。

通过连接表的名称和索引的名称来计算数据库中索引的名称。 例如:表名“Sample”、命名空间“Cus”、索引名“MyIndex” — >索引创建期间索引字段的名称,查询:“CusSample_myIndex”。

属性说明 attribute-description-3

  • _operation (string):定义在数据库中写入的类型。

    此属性主要用于扩展现成架构。

    可访问值包括:

    • “无”:仅和解。 这意味着Adobe Campaign将恢复元素,而不更新它,如果元素不存在则生成错误。
    • "insertOrUpdate":使用insertion更新。 这意味着Adobe Campaign将更新元素,如果它不存在,则创建它。
    • "insert": insertion. 这意味着Adobe Campaign将插入元素而不检查元素是否存在。
    • "update":更新。 这意味着Adobe Campaign将更新元素,如果它不存在,则产生错误。
    • "delete":删除。 这意味着Adobe Campaign将恢复和删除元素。
  • applicableIf (字符串):考虑索引的条件 — 接收XTK表达式。

  • 标签(字符串):索引标签。

  • 名称(MNTOKEN):唯一索引名称。

  • 唯一(布尔值):如果已激活此选项(@unique="true"),则属性将保证索引在其所有字段中的唯一性。

示例 examples-3

在“id”字段上创建索引。 (<dbindex>元素上的“@unique”属性会在数据库中创建索引时触发添加“UNIQUE”SQL关键字(查询))。

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

在“@mail”和“@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);
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1