:: DEVELOPER ZONE
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)]
[tabellen_optionen] [select_statement]
create_definition:
spalten_name typ [NOT NULL | NULL] [DEFAULT vorgabe_wert] [AUTO_INCREMENT]
[PRIMARY KEY] [referenz_definition]
oder PRIMARY KEY (index_spalten_name,...)
oder KEY [index_name] (index_spalten_name,...)
oder INDEX [index_name] (index_spalten_name,...)
oder UNIQUE [INDEX] [index_name] (index_spalten_name,...)
oder FULLTEXT [INDEX] [index_name] (index_spalten_name,...)
oder [CONSTRAINT symbol] FOREIGN KEY index_name (index_spalten_name,...)
[referenz_definition]
oder CHECK (ausdruck)
typ:
TINYINT[(laenge)] [UNSIGNED] [ZEROFILL]
oder SMALLINT[(laenge)] [UNSIGNED] [ZEROFILL]
oder MEDIUMINT[(laenge)] [UNSIGNED] [ZEROFILL]
oder INT[(laenge)] [UNSIGNED] [ZEROFILL]
oder INTEGER[(laenge)] [UNSIGNED] [ZEROFILL]
oder BIGINT[(laenge)] [UNSIGNED] [ZEROFILL]
oder REAL[(laenge,dezimalstellen)] [UNSIGNED] [ZEROFILL]
oder DOUBLE[(laenge,dezimalstellen)] [UNSIGNED] [ZEROFILL]
oder FLOAT[(laenge,dezimalstellen)] [UNSIGNED] [ZEROFILL]
oder DECIMAL(laenge,dezimalstellen) [UNSIGNED] [ZEROFILL]
oder NUMERIC(laenge,dezimalstellen) [UNSIGNED] [ZEROFILL]
oder CHAR(laenge) [BINARY]
oder VARCHAR(laenge) [BINARY]
oder DATE
oder TIME
oder TIMESTAMP
oder DATETIME
oder TINYBLOB
oder BLOB
oder MEDIUMBLOB
oder LONGBLOB
oder TINYTEXT
oder TEXT
oder MEDIUMTEXT
oder LONGTEXT
oder ENUM(wert1,wert2,wert3,...)
oder SET(wert1,wert2,wert3,...)
index_spalten_name:
spalten_name [(laenge)]
referenz_definition:
REFERENCES tabelle [(index_spalten_name,...)]
[MATCH FULL | MATCH PARTIAL]
[ON DELETE referenz_option]
[ON UPDATE referenz_option]
referenz_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
tabellen_optionen:
TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
or AUTO_INCREMENT = #
or AVG_ROW_LENGTH = #
or CHECKSUM = {0 | 1}
or COMMENT = "string"
or MAX_ROWS = #
or MIN_ROWS = #
or PACK_KEYS = {0 | 1 | DEFAULT}
or PASSWORD = "string"
or DELAY_KEY_WRITE = {0 | 1}
or ROW_FORMAT= { default | dynamic | fixed | compressed }
or RAID_TYPE= {1 | STRIPED | RAID0 } RAID_CHUNKS=# RAID_CHUNKSIZE=#
or UNION = (tabelle,[tabelle...])
or INSERT_METHOD= {NO | FIRST | LAST }
or DATA directory="verzeichnis"
or INDEX directory="verzeichnis"
select_statement:
[IGNORE | REPLACE] SELECT ... (jedes zulässige SELECT-Statement)
CREATE TABLE erzeugt eine Tabelle mit dem angegebenen Namen in der
aktuellen Datenbank. Die Regeln für erlaubte Tabellennamen finden Sie unter
Abschnitt 7.1.2, „Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen“. Ein Fehler tritt auf, wenn es keine aktuelle
Datenbank gibt oder wenn die Tabelle bereits existiert.
Ab MySQL-Version 3.22 kann der Tabellenname als datenbank.tabelle
angegeben werden. Das funktioniert unabhängig davon, ob es eine aktuelle
Datenbank gibt oder nicht.
In MySQL-Version 3.23 können Sie das TEMPORARY-Schlüsselwort
benutzen, wenn Sie eine Tabelle erzeugen. Eine temporäre Tabelle wird
automatisch gelöscht, wenn eine Verbindung stirbt und der Name sich auf die
Verbindung bezieht. Das bedeutet, dass zwei verschiedene Verbindungen beide
denselben temporären Tabellenname benutzen können, oder miteinander oder
einer bestehenden Tabelle gleichen Namens in Konflikt zu geraten. (Die
bestehende Tabelle ist versteckt, bis die temporäre Tabelle gelöscht wird.)
Ab MySQL-Version 3.23 können Sie die Schlüsselwörter IF NOT EXISTS
benutzen, so dass kein Fehler auftritt, wenn die Tabelle bereits besteht.
Beachten Sie, dass keine Überprüfung erfolgt, dass die Tabellenstrukturen
identisch sind.
Jede Tabelle tabelle wird durch einige Dateien im
Datenbank-Verzeichnis dargestellt. Im Falle von MyISAM-Tabellen erhalten
Sie:
| Datei | Zweck |
tabelle.frm |
Tabellendefinitionsdatei (form) |
tabelle.MYD |
Daten-Datei |
tabelle.MYI |
Index-Datei |
Weitere Information über die Eigenschaften der verschiedenen Spaltentypen finden Sie unter Abschnitt 7.2, „Spaltentypen“:
Wenn weder NULL noch NOT NULL angegeben ist, wird die Spalte
behandelt, als wenn NULL angegeben worden wäre.
Eine Ganzzahl-Spalte kann das zusätzliche Attribut AUTO_INCREMENT
haben. Wenn Sie einen Wert von NULL (empfohlen) oder 0 in
eine AUTO_INCREMENT-Spalte einfügen, wird die Spalte auf
wert+1 gesetzt, wobei wert der größte momentan in der
Tabelle vorhandene Spaltenwert ist. AUTO_INCREMENT-Folgen fangen mit
1 an. See Abschnitt 9.4.3.30, „mysql_insert_id()“.
Wenn Sie eine Zeile löschen, die den höchsten Wert einer
AUTO_INCREMENT-Spalte enthält, wird der Wert bei einer ISAM-
oder BDB-Tabelle wieder verwendet, nicht aber bei einer
MyISAM- oder InnoDB-Tabelle. Wenn Sie alle Zeilen in der
Tabelle mit DELETE FROM tabelle (ohne ein WHERE) im
AUTOCOMMIT-Modus löschen, fängt die Folge bei allen Tabellentypen
von Neuem an.
HINWEIS: Es darf nur eine AUTO_INCREMENT-Spalte pro Tabelle
geben und diese muss indiziert sein. MySQL-Version 3.23 funktioniert
darüber hinaus nur korrekt, wenn die AUTO_INCREMENT-Spalte nur
positive Werte hat. Das Einfügen einer negativen Zahl wird als Einfügen
einer sehr großen positiven Zahl betrachtet. Damit werden
Genauigkeitsprobleme vermieden, wenn Zahlen vom positiven zum negativen
Bereich übergehen. Ausserdem wird sichergestellt, dass man nicht
versehentlich eine AUTO_INCREMENT-Spalte erhält, die 0 enthält.
Um MySQL kompatibel mit einigen ODBC-Applikationen zu machen, können Sie die letzte eingefügte Zeile mit folgender Anfrage finden:
SELECT * FROM tabelle WHERE auto_spalte IS NULL
NULL-Werte werden bei TIMESTAMP-Spalten anders als bei
anderen Spaltentypen gehandhabt. Sie können NULL nicht wortgetreu in
einer TIMESTAMP-Spalte speichern: Wenn Sie die Spalte auf
NULL setzen, wird sie auf das aktuelle Datum und die aktuelle Zeit
gesetzt. Weil TIMESTAMP-Spalten sich auf diese Art verhalten,
treffen die NULL- und NOT NULL-Attribute nicht auf normale
Art zu und werden ignoriert, wenn Sie sie angeben.
Auf der anderen Seite berichtet der Server, um es für MySQL-Clients
leichter zu machen, TIMESTAMP-Spalten zu benutzen, dass solchen
Spalten NULL-Werte zugewiesen werden können (was stimmt), obwohl
TIMESTAMP nie wirklich einen NULL-Wert enthalten wird. Sie
können das sehen, wenn Sie DESCRIBE tabelle eingeben, um eine
Beschreibung Ihrer Tabelle zu erhalten.
Beachten Sie, dass das Setzen einer TIMESTAMP-Spalte auf 0
nicht dasselbe ist wie das Setzen auf NULL, weil 0 ein
gültiger TIMESTAMP-Wert ist.
Wenn kein DEFAULT-Wert für eine Spalte angegeben wird, weist MySQL
automatisch einen zu.
Wenn die Spalte NULL als Wert aufnehmen darf, ist der Vorgabewert
NULL.
Wenn die Spalte als NOT NULL deklariert ist, hängt der Vorgabewert
vom Spaltentyp ab:
Bei numerischen Typen ausser denen, die mit dem
AUTO_INCREMENT-Attribut deklariert wurden, ist der Vorgabewert
0. Bei einer AUTO_INCREMENT-Spalte ist der Vorgabewert der
nächste Wert in der Folge.
Bei Datums- und Zeit-Typen ausser TIMESTAMP ist der Vorgabewert der
entsprechende 0-Wert für den Typ. Bei der ersten TIMESTAMP-Spalte
einer Tabelle ist der Vorgabewert das aktuelle Datum und die aktuelle Zeit.
See Abschnitt 7.2.2, „Datums- und Zeit-Typen“.
Bei Zeichenketten-Typen ausser ENUM ist der Vorgabewert die leere
Zeichenkette. Bei ENUM ist der Vorgabewert der erste
Aufzählungswert.
Vorgabewerte müssen Konstanten sein. Das heißt zum Beispiel, dass Sie den
Vorgabewert einer DATE-Spalte nicht als Wert einer Funktion wie
NOW() oder CURRENT_DATE setzen können.
KEY ist ein Synonym für INDEX.
In MySQL darf ein UNIQUE-Schlüssel nur unterschiedliche Werte haben.
Ein Fehler tritt auf, wenn Sie versuchen, eine neue Zeile hinzuzufügen, der
Schlüsselwert dem einer bestehenden Zeile entspricht.
Ein PRIMARY KEY ist ein eindeutiger KEY mit der zusätzlichen
Beschränkung, dass alle Schlüsselspalten als NOT NULL deklariert
sein müssen. In MySQL wird der Schlüssel PRIMARY genannt. Eine
Tabelle darf nur einen PRIMARY KEY haben. Wenn Sie keinen
PRIMARY KEY haben und irgend welche Applikationen nach einem
PRIMARY KEY in Ihrer Tabelle verlangen, gibt MySQL den ersten
UNIQUE-Schlüssel, der keinerlei NULL-Spalten hat, als
PRIMARY KEY zurück.
Ein PRIMARY KEY kann ein mehrspaltiger Index sein. Sie können jedoch
keinen mehrspaltiger Index mit dem PRIMARY KEY-Schlüsselattribut in
einer Spaltenspezifikation erzeugen. Wenn Sie das tun, wird nur die erste
Spalte als PRIMARY gekennzeichnet. Sie müssen die PRIMARY KEY(index_spalten_name, ...)-Syntax benutzen.
Wenn der PRIMARY- oder UNIQUE-Schlüssel aus nur einer Spalte
besteht und diese vom Typ Ganzzahl ist, können Sie auf sie auch als
_rowid verweisen (neu ab Version 3.23.11).
Wenn Sie einem Index keinen Namen zuweisen, wird dem Index derselbe Name
zugewiesen wie der erste index_spalten_name, mit einem optionalen
Suffix (_2, _3, ...), um ihn eindeutig zu machen. Sie
können die Indexnamen für eine Tabelle mit SHOW INDEX FROM tabelle
anzeigen. See Abschnitt 5.5.5, „SHOW-Syntax“.
Nur der MyISAM-Tabellentyp unterstützt Indexe auf Spalten, die
NULL-Werte enthalten können. In anderen Fällen müssen Sie solche
Spalten als NOT NULL deklarieren, sonst tritt ein Fehler auf.
Mit der spalten_name(laenge)-Syntax können Sie einen Index
festlegen, der nur einen Teil einer CHAR- oder VARCHAR-Spalte
enthält. Das kann die Index-Datei viel kleiner machen.
See Abschnitt 6.4.4, „Spalten-Indexe“.
Nur der MyISAM-Tabellentyp unterstützt Indexierung auf BLOB-
und TEXT-Spalten. Wenn Sie einen Index auf eine BLOB- oder
TEXT-Spalte setzen, MÜSSEN Sie immer die Länge des Indexes angeben:
CREATE TABLE test (blob_spalte BLOB, index(blob_spalte(10)));
Wenn Sie ORDER BY oder GROUP BY bei einer TEXT- oder
BLOB-Spalte benutzen, werden nur die ersten max_sort_length
Bytes benutzt. See Abschnitt 7.2.3.2, „Die BLOB- und TEXT-Typen“.
Ab MySQL-Version 3.23.23 können Sie auch spezielle FULLTEXT-Indexe
erzeugen, Diese werden für Volltextsuche benutzt. Nur der
MyISAM-Tabellentyp unterstützt FULLTEXT-Indexe. Sie können
auf VARCHAR- und TEXT-Spalten erzeugt werden. Die Indexierung
erfolgt immer über die gesamte Spalte, teilweise Indexierung wird nicht
unterstützt. Siehe Abschnitt 7.8, „MySQL-Volltextsuche“ für Details zur Funktionsweise.
Die FOREIGN KEY-, CHECK- und REFERENCES-Klauseln tun
momentan noch nichts. Die Syntax wird nur aus Gründen der Kompatibilität
bereit gestellt, um das Portieren von Code von anderen SQL-Servern zu
erleichtern und um Applikationen laufen zu lassen, die Tabellen mit
Referenzen erzeugen.
Jede NULL-Spalte benötigt ein zusätzliches Bit, gerundet auf das
nächste Byte.
Die maximale Datensatzlänge in Bytes kann wie folgt berechnet werden:
Zeilenlänge = 1
+ (Summe Spaltenlängen)
+ (Anzahl von NULL-Spalten + 7)/8
+ (Anzahl von Spalten variabler Länge)
Die tabellen_optionen- und SELECT-Optionen sind implementiert
ab MySQL-Version 3.23.
Die unterschiedlichen Tabellentypen sind:
| BDB oder Berkeley_db | Transaktionssichere Tabellen mit Seitensperren (Page Locking). See Abschnitt 8.6, „BDB- oder Berkeley_db-Tabellen“. |
| HEAP | Die Daten dieser Tabelle werden nur im Arbeitsspeicher gehalten. See Abschnitt 8.4, „HEAP-Tabellen“. |
| ISAM | Der Original-Tabellen-Handler. See Abschnitt 8.3, „ISAM-Tabellen“. |
| InnoDB | Transaktionssichere Tabellen mit Zeilensperren. See Abschnitt 8.5, „InnoDB-Tabellen“. |
| MERGE | Eine Sammlung von MyISAM-Tabellen, die als eine Tabelle benutzt werden. See Abschnitt 8.2, „MERGE-Tabellen“. |
| MRG_MERGE | Ein Alias für MERGE-Tabellen. |
| MyISAM | Der neue binäre portable Tabellen-Handler, der ISAM ersetzt. See Abschnitt 8.1, „MyISAM-Tabellen“. |
See Kapitel 8, MySQL-Tabellentypen.
Wenn ein Tabellentyp angegeben wird und dieser besondere Typ nicht
verfügbar ist, wählt MySQL den Tabellentyp, der dem angegebenen am nächsten
kommt. Wenn beispielsweise TYPE=BDB angegeben wird und die
Distribution von MySQL keine BDB-Tabellen unterstützt, wird die
Tabelle statt dessen als MyISAM erzeugt.
Die anderen Tabellenoptionen werden benutzt, um das Verhalten der Tabelle zu optimieren. In den meisten Fällen müssen Sie keine davon angeben. Die Optionen funktionieren bei allen Tabellentypen, falls nicht anders angegeben:
AUTO_INCREMENT |
Der nächste auto_increment-Wert, den Sie für Ihre Tabelle setzen wollen (MyISAM). |
AVG_ROW_LENGTH |
Näherungsweise die durchschnittliche Zeilenlänge Ihrer Tabelle. Diese Option müssen Sie nur für große Tabellen mit unterschiedlich großen Datensätzen setzen. |
CHECKSUM |
Setzen Sie diesen Wert auf 1, wenn Sie wollen, dass MySQL eine Prüfsumme für alle Zeilen unterhält (macht die Tabelle ein bisschen langsamer bei der Aktualisierung, aber macht es einfacher, beschädigte Tabellen zu finden) (MyISAM). |
COMMENT |
Ein 60-Zeichen-Kommentar für Ihre Tabelle. |
MAX_ROWS |
Maximale Anzahl von Zeilen, die Sie in Ihrer Tabelle zu speichern planen. |
MIN_ROWS |
Minimale Anzahl von Zeilen, die Sie in Ihrer Tabelle zu speichern planen. |
PACK_KEYS |
Setzen Sie diesen Wert auf 1, wenn Sie einen kleineren Index erhalten wollen. Das macht Aktualisierungen üblicherweise langsamer und liest schneller (MyISAM, ISAM). Setzen auf 0 schaltet die Komprimierung von Schlüsseln ab. Setzen auf DEFAULT (MySQL 4.0) weist die Tabellen-Handler an, nur lange CHAR- / VARCHAR-Spalten zu packen.
|
PASSWORD |
Verschlüsselt die .frm-Datei mit einem Passwort. Diese Option tut nichts in der Standard-MySQL-Version.
|
DELAY_KEY_WRITE |
Setzen Sie diesen Wert auf 1, wenn Sie Schlüssel-Tabellen-Aktualisierungen verzögern wollen, bis die Tabelle geschlossen wird (MyISAM). |
ROW_FORMAT |
Definiert, wie die Zeilen gespeichert werden sollen. Momentan funktioniert diese Option nur bei MyISAM-Tabellen, die die DYNAMIC- und FIXED-Zeilenformate unterstützen. See Abschnitt 8.1.2, „MyISAM-Tabellenformate“.
|
Wenn Sie eine MyISAM-Tabelle benutzen, verwendet MySQL das Produkt
aus max_rows * avg_row_length um zu entscheiden, wie Groß die
resultierende Tabelle sein wird. Wenn Sie keine der obigen Optionen
angeben, ist die maximale Größe für eine Tabelle 4 GB (oder 2 GB, wenn Ihr
Betriebssystem nur 2 GB-Tabellen unterstützt). Das geschieht, um
Zeigergrößen gering zu halten und um den Index kleiner und schneller zu
machen, wenn Sie nicht wirklich große Dateien benötigen.
Wenn Sie PACK_KEYS nicht benutzen, ist die Vorgabe, nur
Zeichenketten zu komprimieren, nicht Zahlen. Wenn Sie PACK_KEYS=1
benutzen, werden auch Zahlen komprimiert.
Wenn Sie binäre Zahlschlüssel komprimieren, benutzt MySQL die
Präfix-Komprimierung. Das bedeutet, dass Sie nur dann einen Nutzen daraus
ziehen, wenn Sie Zahlen haben, die sich oft wiederholen. Präfix-Kompression
bedeutet, das jeder Schlüssel ein zusätzliches Byte benötigt, um
darzustellen, wie viele Bytes des vorherigen Schlüssels für den nächsten
Schlüssel dieselben sind (beachten Sie, dass der Zeiger auf die Zeile in
der Reihenfolge 'hohes Byte zuerst' direkt nach dem Schlüssel gespeichert
wird, um die Kompression zu verbessern). Das heißt, wenn Sie viele gleiche
Schlüssel auf zwei Zeilen hintereinander haben, werden alle folgenden
'gleichen' Schlüssel üblicherweise nur 2 Bytes in Anspruch nehmen
(inklusive dem Zeiger auf die Zeile). Vergleichen Sie das mit dem
Normalfall, bei dem die folgenden Schlüssel speicher_platz_fuer_schlüssel +
zeiger_groesse beanspruchen (üblicherweise 4). Auf der anderen Seite
verlieren Sie 1 Byte pro Schlüssel, wenn alle Schlüssel völlig
unterschiedlich sind, falls der Schlüssel kein Schlüssel ist, der
NULL-Werte haben kann (in diesem Fall wird die komprimierte
Schlüssellänge, die im selben Byte gespeichert ist, benutzt, um zu
kennzeichnen, ob ein Schlüssel NULL ist).
Wenn Sie ein SELECT nach dem CREATE-Statement angeben,
erzeugt MySQL neue Felder für alle Elemente im SELECT. Beispiel:
mysql> CREATE TABLE test (a int not null auto_increment,
primary key (a), key(b))
TYPE=MyISAM SELECT b,c from test2;
Das erzeugt eine MyISAM-Tabelle mit drei Spalten a, b und c.
Beachten Sie, dass die Spalten des SELECT-Statements an die rechte
Seite der Tabelle angehängt werden, nicht überlappend. Nehmen wir folgendes
Beispiel:
mysql> select * from foo; +---+ | n | +---+ | 1 | +---+ mysql> create table bar (m int) select n from foo; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from bar; +------+---+ | m | n | +------+---+ | NULL | 1 | +------+---+ 1 row in set (0.00 sec)
Für jede Zeile in Tabelle foo wird eine Zeile in bar mit den
Werten von foo und Vorgabewerten für die neuen Spalten eingefügt.
CREATE TABLE ... SELECT erzeugt nicht automatisch irgend welche
Indexe. Das wird absichtlich gemacht, um den Befehl so flexibel wie möglich
zu machen. Wenn Sie Indexe in der erzeugten Tabelle haben wollen, geben Sie
diese vor dem SELECT-Statement an:
mysql> create table bar (unique (n)) select n von foo;
Wenn Fehler beim Kopieren der Daten in die Tabelle auftreten, wird diese automatisch gelöscht.
Um sicherzustellen, dass die Update-Log-Datei/Binär-Log-Datei benutzt
werden kann, um die Original-Tabellen neu zu erzeugen, läßt MySQL keine
gleichzeitigen Einfügeoperationen während CREATE TABLE .... SELECT
zu.
Die RAID_TYPE-Option hilft, die 2 GB- / 4 GB-Grenze für die
MyISAM-Daten-Datei zu durchbrechen (nicht für die Index-Datei), auf
Betriebssystemen, die keine großen Dateien unterstützen.
Sie erzielen mehr Geschwindigkeit vom I/O-Flaschenhals, wenn Sie die
RAID-Verzeichnisse auf unterschiedliche physikalische Platten legen.
RAID_TYPE funktioniert auf jedem Betriebssystem, solange Sie MySQL
mit --with-raid konfiguriert haben. Momentan ist der einzige
zulässige RAID_TYPE STRIPED (1 und RAID0 sind
Aliase dafür).
Wenn Sie RAID_TYPE=STRIPED bei einer MyISAM-Tabelle angeben,
erzeugt MyISAM RAID_CHUNKS-Unterverzeichnisse namens 00, 01,
02 im Datenbank-Verzeichnis. In jedem dieser Verzeichnisse erzeugt
MyISAM eine tabelle.MYD. Wenn Sie Daten in die Daten-Datei
schreiben, mappt der RAID-Handler die ersten RAID_CHUNKSIZE *
1024 Bytes auf die erste Datei, die nächsten RAID_CHUNKSIZE * 1024
Bytes auf die nächste Datei usw.
UNION wird benutzt, wenn Sie eine Sammlung identischer Tabelle als
eine benutzen wollen. Das funktioniert nur bei MERGE-Tabellen. See Abschnitt 8.2, „MERGE-Tabellen“.
Momentan benötigen Sie SELECT-, UPDATE-
und-DELETE-Berechtigungen auf die Tabellen, die Sie auf eine
MERGE-Tabelle mappen. Alle gemappten Tabellen müssen sich in
derselben Datenbank wie die MERGE-Tabelle befinden.
Wenn Sie Daten in eine MERGE-Tabelle einfügen wollen, müssen Sie mit
INSERT_METHOD angeben, in welche Tabelle die Zeile eingefügt werden
soll. See Abschnitt 8.2, „MERGE-Tabellen“.
In der erzeugten Tabelle wird der PRIMARY-Schlüssel zuerst
platziert, gefolgt von allen UNIQUE-Schlüsseln und danach von den
normalen Schlüsseln. Das hilft dem MySQL-Optimierer zu priorisieren,
welcher Schlüssel benutzt werden soll, und auch, Duplikate von
UNIQUE-Schlüsseln zu entdecken.
Wenn Sie DATA directory="verzeichnis" oder INDEX directory="verzeichnis" benutzen, können Sie angeben, wohin die
Tabellen-Handler ihre Tabellen- und Index-Dateien legen sollen. Das
funktioniert nur bei MyISAM-Tabellen in MySQL 4.0, wenn Sie
die --skip-symlink-Option nicht benutzen. See Abschnitt 6.6.1.2, „Benutzung symbolischer Links für Tabellen“.
© 1995-2005 MySQL AB. All rights reserved.
