dbindex:==keyfield
<element>
<keyfield>
Mit diesem Element können Sie einen mit einer Tabelle verknüpften Index definieren.
Es ist möglich, mehrere Indizes zu definieren. Ein Index kann auf ein oder mehrere Felder der Tabelle verweisen. Die Indexdeklaration folgt in der Regel der Definition des Hauptschemaelements.
Die Reihenfolge der <keyfield>
in einer <dbindex>
ist sehr wichtig. Die erste <keyfield>
muss das Indexierungskriterium sein, auf dem die Abfragen hauptsächlich basieren.
Der Name des Index in der Datenbank wird durch Verkettung des Tabellennamens und des Indexnamens berechnet. Beispiel: Tabellenname "Beispiel", Namespace "Cus", Indexname "MyIndex"-> Name des Indexfelds bei der Indexerstellung: "CusSample_myIndex".
_operation (string): definiert den Typ des Schreibens in der Datenbank.
Dieses Attribut wird hauptsächlich bei der Erweiterung von nativen Schemata verwendet.
Barrierefreie Werte sind:
applyIf (string): Bedingung für die Berücksichtigung des Index - empfängt einen XTK-Ausdruck.
label (string): Indexbezeichnung.
name (MNTOKEN): eindeutiger Indexname.
unique (boolean): Wenn diese Option aktiviert ist (@unique="true"), garantiert das Attribut die Eindeutigkeit des Index in allen Feldern.
Erstellung eines Index im Feld "id". (Attribut "@unique" im <dbindex>
Element-Trigger, die das SQL-Schlüsselwort "UNIQUE" hinzufügen, wenn der Index in der Datenbank erstellt wird (Abfrage).
<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);
Erstellung eines zusammengesetzten Index für die Felder "@mail" und "@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);