dbindex:==keyfield
<element>
<keyfield>
此元素可讓您定義連結至表格的索引。
可以定義多個索引。 一個索引可以參考資料表的一或多個欄位。 索引宣告通常遵循主要結構描述元素的定義。
的順序 <keyfield>
在中定義的元素 <dbindex>
非常重要。 第一個 <keyfield>
必須是查詢主要依據的索引標準。
資料庫中索引的名稱是透過串連資料表的名稱和索引的名稱來計算的。 例如:資料表名稱"Sample"、名稱空間"Cus"、索引名稱"MyIndex"->建立索引期間索引欄位的名稱查詢:"CusSample_myIndex"。
操作(字串)(_O):定義資料庫中的寫入型別。
此屬性主要用於擴充現成可用的結構描述。
可存取的值包括:
appliedIf (字串):考慮索引的條件 — 接收XTK運算式。
標籤(字串):索引標籤。
名稱(MNTOKEN):唯一索引名稱。
唯一(布林值):如果已啟用此選項(@unique="true"),屬性會保證其欄位中索引的唯一性。
在「id」欄位上建立索引。 (上的「@unique」屬性 <dbindex>
在資料庫中建立索引時,元素會觸發新增「唯一」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);