Kapitel 3: Installation von MySQL 91
• FLOAT(X) ist jetzt ein echter Fließkomma-Typ und kein Wert mit einer festen Anzahl
von Dezimalstellen.
• Wenn Sie DECIMAL(length,dec) deklarieren, beinhaltet das L¨angen-Argument nicht
mehr den Platz f¨ur das Vorzeichen oder den Dezimalpunkt.
• Eine TIME-Zeichenkette muss jetzt von einem der folgenden Formate sein: [[[DAYS]
[H]H:]MM:]SS[.bruchteil] oder [[[[[H]H]H]H]MM]SS[.bruchteil]
• LIKE vergleicht jetzt Zeichenketten unter Verwendung derselben Vergleichsregeln wie
’=’. Wenn Sie das alte Verhalten ben¨otigen, k¨onnen Sie MySQL mit dem CXXFLAGS=-
DLIKE_CMP_TOUPPER-Flag kompilieren.
• REGEXP arbeitet jetzt bei normalen (nicht bin¨aren) Zeichenketten unabh¨angig von der
Groß-/Kleinschreibung.
• Wenn Sie Tabellen pr¨ufen / reparieren, sollten Sie CHECK TABLE oder myisamchk f¨ur
MyISAM-Tabellen (.MYI) benutzen und isamchk f¨ur ISAM-Tabellen (.ISM).
• Wenn Sie wollen, dass mysqldump-Dateien zwischen MySQL-Version 3.22 und Version
3.23 kompatibel sind, sollten Sie nicht die --opt- oder --full-Option f¨ur mysqldump
benutzen.
•
¨
Uberpr¨ufen Sie Ihre Aufrufe von DATE_FORMAT() und stellen Sie sicher, dass vor jedem
Formatierungszeichen ein ‘%’ steht. (Sp¨atere MySQL-Versionen 3.22 ließen diese Syntax
zu.)
• mysql_fetch_fields_direct ist jetzt eine Funktion (es war ein Makro) und gibt einen
Zeiger auf MYSQL_FIELD anstelle eines MYSQL_FIELD zur¨uck.
• mysql_num_fields() kann nicht mehr f¨ur ein MYSQL*-Objekt benutzt werden (es ist
jetzt eine Funktion, die MYSQL_RES* als Argument nimmt. Sie sollten jetzt statt dessen
mysql_field_count() b enutzen.
• In MySQL-Version 3.22 war die Ausgabe von SELECT DISTINCT ... fast immer sortiert.
In Version 3.23 m¨ussen Sie GROUP BY oder ORDER BY benutzen, um eine sortierte Aus-
gabe zu erhalten.
• SUM() gibt jetzt NULL zur¨uck statt 0, wenn es keine ¨uberein stimmenden Zeilen gibt.
Das ist in
¨
Ubereinstimmung mit ANSI-SQL.
• Ein AND oder OR mit NULL-Werten gibt jetzt NULL anstelle von 0 zur¨uck. Das betrifft
haupts¨achlich Anfragen, die NOT bei einem AND/OR-Ausdruck wie NOT NULL = NULL
benutzen. LPAD() und RPAD() k¨urzen die Ergebnis-Zeichenkette, wenn sie l¨anger als
das L¨angen-Argument ist.
3.5.3 Upgrade von Version 3.21 auf Version 3.22
Nichts, was die Kompatibilit¨at betrifft, hat sich zwischen Version 3.21 und 3.22 ge¨andert.
Die einzige Falle ist die, dass neue Tabellen, die unter Verwendung des DATE-Typs erzeugt
werden, die neue Art der Datenspeicherung benutzen. Diese neuen Felder kann man daher
nicht von einer alten Version von mysqld ansprechen.
Nachdem Sie MySQL-Version 3.22 installiert haben, starten Sie den neuen Server und lassen
dann das mysql_fix_privilege_tables-Skript laufen. Dieses f¨ugt die neuen Zugriffs-
berechtigungen ein, die Sie ben¨otigen, um den GRANT-Befehl zu benutzen. Wenn Sie das
vergessen, erhalten Sie ein Access denied, wenn Sie versuchen, ALTER TABLE, CREATE INDEX
Kommentare zu diesen Handbüchern