Hallo,
in einer Tabelle sind unter anderem die Felder
<pre>
TimeFrom, Typ TIMESTAMP, NOT NULL
TimeThru, Typ TIMESTAMP
</pre>
Nun möchte ich gerne über diese Felder einen zusammengesetzten Sekundärindex setzen.
Beim Hinzufügen von Datensätzen habe ich bemerkt, dass NULL-Values (was beim Feld TimeThru durchaus vorkommen kann) bei Interbase nicht gerne in einem Index gesehen werden (laut Dokumentation). Früher waren diese beiden Felder vom Typ VARCHAR(10) und es gab keinerlei Schwierigkeiten.
Hier das Skript-Fragment:
<pre>
SET SQL DIALECT 3;
/* Datenbank erzeugen */
CREATE DATABASE '<MyDBFile.gdb>'
USER 'MyUser' PASSWORD 'MyPassword';
/* Domains der Datenbank festlegen */
CREATE DOMAIN TDateTime AS TIMESTAMP;
CREATE DOMAIN TID AS INTEGER;
CREATE DOMAIN TAddInfo AS VARCHAR(255);
/* Tabelle MyTable */
CREATE TABLE MyTable (
MyTableID TID NOT NULL,
TimeFrom TDateTime NOT NULL,
TimeThru TDateTime,
AddInfo TAddInfo
);
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable PRIMARY KEY(MyTableID);
CREATE UNIQUE ASCENDING INDEX IDX_MyTable ON MyTable(TimeFrom,TimeThru);
COMMIT WORK;
</pre>
Da diese Datenbank auch auf anderen SQL-Servern läuft, möchte ich ungerne bei der Lösung in Probleme kommen, die bei einem Server funktionieren und beim anderen nicht (eben z.B. nicht-benötigte Felder in einem Index).
Vielen Dank im voraus<br>
Stephan
in einer Tabelle sind unter anderem die Felder
<pre>
TimeFrom, Typ TIMESTAMP, NOT NULL
TimeThru, Typ TIMESTAMP
</pre>
Nun möchte ich gerne über diese Felder einen zusammengesetzten Sekundärindex setzen.
Beim Hinzufügen von Datensätzen habe ich bemerkt, dass NULL-Values (was beim Feld TimeThru durchaus vorkommen kann) bei Interbase nicht gerne in einem Index gesehen werden (laut Dokumentation). Früher waren diese beiden Felder vom Typ VARCHAR(10) und es gab keinerlei Schwierigkeiten.
Hier das Skript-Fragment:
<pre>
SET SQL DIALECT 3;
/* Datenbank erzeugen */
CREATE DATABASE '<MyDBFile.gdb>'
USER 'MyUser' PASSWORD 'MyPassword';
/* Domains der Datenbank festlegen */
CREATE DOMAIN TDateTime AS TIMESTAMP;
CREATE DOMAIN TID AS INTEGER;
CREATE DOMAIN TAddInfo AS VARCHAR(255);
/* Tabelle MyTable */
CREATE TABLE MyTable (
MyTableID TID NOT NULL,
TimeFrom TDateTime NOT NULL,
TimeThru TDateTime,
AddInfo TAddInfo
);
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable PRIMARY KEY(MyTableID);
CREATE UNIQUE ASCENDING INDEX IDX_MyTable ON MyTable(TimeFrom,TimeThru);
COMMIT WORK;
</pre>
Da diese Datenbank auch auf anderen SQL-Servern läuft, möchte ich ungerne bei der Lösung in Probleme kommen, die bei einem Server funktionieren und beim anderen nicht (eben z.B. nicht-benötigte Felder in einem Index).
Vielen Dank im voraus<br>
Stephan
Comment