Die SQL-Anweisung CREATE TABLE (create_table_statement) ist in MaxDB bekannt, jedoch mit einer von Oracle verschiedenen Syntax und Semantik (CREATE TABLE-Anweisung (create_table_statement)).
· Die Angabe von PCTFREE <integer>, PCTUSED <integer>, INITRANS <integer>, MAXTRANS <integer>, TABLESPACE <tablespace> STORAGE <storage clause> und CLUSTER <cluster> besitzt für MaxDB keine Bedeutung, wird jedoch syntaktisch akzeptiert.
· Die Angabe von DISABLE wird von MaxDB ignoriert.
· Bei Angabe einer Subquery (subquery) werden von MaxDB keine NOT NULL-Constraints generiert.
·
Jede Zeile einer Tabelle besitzt in
Oracle eine eindeutige Adresse, die als ROWID zugreifbar ist und über die die
Zeile direkt adressiert werden kann. Diese ROWID existiert auch dann, wenn die
Tabelle einen Schlüssel besitzt. MaxDB besitzt eine Adresse dieser Art nicht,
da die Zeilen immer über den Schlüssel adressiert werden.
Um das Oracle-Verhalten besser nachbilden zu können, gibt es die
Tabellenoption ROWID, die folgendes bewirkt:
- Die Tabelle erhält implizit die Schlüsselspalte ROWID vom Datentyp RAW(8).
Diese Spalte ist normalerweise unsichtbar und kann nur durch die Funktion
ROWID selektiert werden.
-Falls die CREATE TABLE-Anweisung eine Schlüsseldefinition
(key_definition) enthält, wird implizit ein Index mit dem UNIQUE-Attribut
erzeugt, der der Schlüsseldefinition entspricht.
Eine Zeile besitzt auf diese Weise eine ROWID und kann sowohl über diese als
auch über den Schlüssel schnell selektiert werden.