Die SQL-Anweisung CREATE TABLE (create_table_statement) ist in MySQL 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 MySQL MaxDB keine Bedeutung, wird jedoch syntaktisch akzeptiert.
· Die Angabe von DISABLE wird von MySQL MaxDB ignoriert.
· Bei Angabe einer Subquery (subquery) werden von MySQL 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. MySQL 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.