Kapitel 7: MySQL-Sprachreferenz 459
Auf der anderen Seite berichtet der Server, um es f¨ur MySQL-Clients leichter zu
machen, TIMESTAMP-Spalten zu benutzen, dass solchen Spalten NULL-Werte zugewiesen
werden k¨onnen (was stimmt), obwohl TIMESTAMP nie wirklich einen NULL-Wert en-
thalten wird. Sie k¨onnen 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¨ultiger TIMESTAMP-Wert ist.
• Wenn kein DEFAULT-Wert f¨ur 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¨angt 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¨achste Wert in der Folge.
− Bei Datums- und Zeit-Typen ausser TIMESTAMP ist der Vorgabewert der
entsprechende 0-Wert f¨ur den Typ. Bei der ersten TIMESTAMP-Spalte einer
Tabelle ist der Vorgabewert das aktuelle Datum und die aktuelle Zeit. Siehe
Abschnitt 7.2.2 [Date and time types], Seite 383.
− Bei Zeichenketten-Typen ausser ENUM ist der Vorgabewert die leere Zeichenkette.
Bei ENUM ist der Vorgabewert der erste Aufz¨ahlungswert.
Vorgabewerte m¨ussen Konstanten sein. Das heißt zum Beispiel, dass Sie den Vorgabe-
wert einer DATE-Spalte nicht als Wert einer Funktion wie NOW() oder CURRENT_DATE
setzen k¨onnen.
• KEY ist ein Synonym f¨ur INDEX.
• In MySQL darf ein UNIQUE-Schl¨ussel nur unterschiedliche Werte haben. Ein Fehler
tritt auf, wenn Sie versuchen, eine neue Zeile hinzuzuf¨ugen, der Schl¨usselwert dem
einer bestehenden Zeile entspricht.
• Ein PRIMARY KEY ist ein eindeutiger KEY mit der zus¨atzlichen Beschr¨ankung, dass alle
Schl¨usselspalten als NOT NULL deklariert sein m¨ussen. In MySQL wird der Schl¨ussel
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¨ussel, der keinerlei NULL-Spalten
hat, als PRIMARY KEY zur¨uck.
• Ein PRIMARY KEY kann ein mehrspaltiger Index sein. Sie k¨onnen jedoch keinen
mehrspaltiger Index mit dem PRIMARY KEY-Schl¨usselattribut in einer Spaltenspezifika-
tion erzeugen. Wenn Sie das tun, wird nur die erste Spalte als PRIMARY gekennzeichnet.
Sie m¨ussen die PRIMARY KEY(index_spalten_name, ...)-Syntax benutzen.
• Wenn der PRIMARY- oder UNIQUE-Schl¨ussel aus nur einer Spalte besteht und diese
vom Typ Ganzzahl ist, k¨onnen Sie auf sie auch als _rowid verweisen (neu ab Ver-
sion 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,
Comentarios a estos manuales