## create_table_statement

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.