Wenn "ALTER TABLE" ADD col "verwendet wird, wird die neue Spalte am Ende der Tabelle hinzugefügt. Zum Beispiel:
%Vor%Tabelle wird
%Vor%Wie jedoch die Benennung meiner Beispielspalten andeutet, würde mir gefallen, dass die Tabelle so endet:
%Vor%Mit COL_3 vor COL_4.
Gibt es neben dem Neuaufbau der Tabelle von Grund auf auch ein Standard-SQL, das die Aufgabe erledigt? Wenn es jedoch kein Standard-SQL gibt, könnte ich immer noch einige herstellerabhängige Lösungen für Oracle verwenden, aber auch hier wäre eine Standardlösung am besten.
Danke.
Spalten werden standardmäßig nur am Ende hinzugefügt.
Um eine Spalte in die Mitte einzufügen, müssen Sie die Tabelle und alle zugehörigen Objekte (Abhängigkeiten, Indizes, Standardwerte, Beziehungen usw.) löschen und neu erstellen.
Mehrere Tools tun dies für Sie, und abhängig von der Größe der Tabelle kann dies eine intensive Operation sein.
Sie können auch Ansichten in der Tabelle erstellen, die Spalten in der Reihenfolge der Bevorzugung anzeigen (indem Sie die tatsächliche Reihenfolge in der Tabelle überschreiben).
Ссылка gibt an, dass dies nicht möglich ist, und schlägt Umgehungslösungen für das Umbenennen der Tabelle und das Ausführen von a vor create table as select...
oder (etwas, mit dem ich nicht vertraut bin) "Verwenden Sie das DBMS_REDEFINITION-Paket, um die Struktur zu ändern".
Ich weiß, es ist ein altes Thema (2009), aber vielleicht hilft es jemandem, der immer noch nach einer Antwort sucht. In MySQL funktioniert es 2 fügen Sie eine Spalte irgendwo in der Tabelle hinzu.
%Vor%Dies ist 2 Geben Sie eine Textspalte ein, aber Sie können alle Eigenschaften festlegen, die Sie für die neue Spalte haben möchten. Achten Sie darauf, dass Sie sie mit Großbuchstaben schreiben.
Ich habe es mit Xampp, MySQL admin, gefunden, als ich es benutzte 2 füge eine Spalte in die Mitte einer MySQL-Tabelle ein.
Ich hoffe, es hilft.