dbindex元素

內容模型

dbindex:==keyfield

屬性

  • @_operation(字串)
  • @applicableIf(字串)
  • @label(字串)
  • @name(MNTOKEN)
  • @unique(布林值)

父級

<element>

子項

<keyfield>

說明

此元素可讓您定義連結至表格的索引。

使用與使用內容

可以定義多個索引。 一個索引可以引用表的一個或多個欄位。 索引聲明通常遵循主架構元素的定義。

<dbindex>中定義的<keyfield>元素的順序非常重要。 第一個<keyfield>必須是查詢主要基於的索引標準。

通過串連表的名稱和索引的名稱來計算資料庫中索引的名稱。 例如:表名「Sample」、命名空間「Cus」、索引名「MyIndex」 — >索引建立查詢期間索引欄位的名稱:"CusSample_myIndex"。

屬性說明

  • _operation(string):定義資料庫中的寫入類型。

    此屬性主要用於擴充現成可用的結構時。

    可存取的值包括:

    • "none":單獨調解。 這表示Adobe Campaign將復原元素,而不會更新元素,或在不存在的情況下產生錯誤。
    • "insertOrUpdate":更新為插入。 這表示Adobe Campaign將更新元素,或在元素不存在時加以建立。
    • "insert":插入。 這表示Adobe Campaign將插入元素,而不會檢查元素是否存在。
    • "update":更新。 這表示Adobe Campaign將更新元素,或在元素不存在時產生錯誤。
    • "delete":刪除。 這表示Adobe Campaign將復原和刪除元素。
  • applicableIf(字串):考量索引的條件 — 接收XTK運算式。

  • 標籤(字串):索引標籤。

  • name(MNTOKEN):唯一索引名稱。

  • 唯一(布林值):如果激活了此選項(@unique="true"),則屬性保證索引在其整個欄位中的唯一性。

範例

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

本頁內容