Anhang A: Probleme und h¨aufige Fehler 645
SELECT spalten_name1, spalten_name2, spalten_name3 FROM tabelle;
Das gibt die Spalten in der Reihenfolge spalten_name1, spalten_name2, spalten_name3
zur¨uck, wohingegen:
SELECT spalten_name1, spalten_name3, spalten_name2 FROM tabelle;
die Spalten in der Reihenfolge spalten_name1, spalten_name3, spalten_name2 zur¨uckgibt.
Sie sollten in einer Applikation NIE SELECT * benutzen und die Spalten basierend auf ihrer
Position abrufen, weil die Reihenfolge, in der Spalten zur¨uckgegeben werden, im Zeitablauf
NICHT garantiert werden kann. Eine einfache
¨
Anderung in Ihrer Datenbank kann dazu
f¨uhren, dass Ihre Applikation dramatisch scheitert.
Wenn Sie dennoch die Spalten-Reihenfolge ¨andern wollen, k¨onnen Sie das wie folgt tun:
1. Erzeugen Sie eine neue Tabelle mit den Spalten in der richtigen Reihenfolge.
2. F¨uhren Sie INSERT INTO neue_tabelle SELECT felder-in-der-reihenfolge-von-
neue_tabelle FROM alte_tabelle aus.
3. L¨oschen Sie alte_tabelle oder benennen Sie sie um.
4. F¨uhren Sie ALTER TABLE neue_tabelle RENAME alte_tabelle aus.
A.6.3 TEMPORARY TABLE-Probleme
Im Folgenden eine Auflistung der Beschr¨ankungen bei TEMPORARY TABLES.
• Eine tempor¨are Tabelle kann nur vom Typ HEAP, ISAM oder MyISAM sein.
• Sie k¨onnen tempor¨are Tabellen nicht mehr als einmal in derselben Anfrage benutzen.
Folgendes zum Beispiel funktioniert nicht:
select * from temporary_table, temporary_table as t2;
Das soll in Version 4.0 behoben werden.
• Sie k¨onnen kein RENAME auf eine TEMPORARY-Tabelle benutzen. Beachten Sie, dass ALTER
TABLE alter_name RENAME neuer_name dagegen funktioniert! Das soll in Version 4.0
behoben werden.
Kommentare zu diesen Handbüchern