Gibt es eine Möglichkeit, eine Spalte in einer Oracle-Tabelle von der letzten zur ersten Position zu verschieben? Jemand hat die ID-Spalte gelöscht und neu erstellt. Jetzt ist es am Ende, was ein Problem ist, da einige unserer PHP-Skripte die erste Spalte als Bezeichner verwenden (ein Abstraktes Modell mit mehr als 100 anderen Modellen, die dieses Basisobjekt verwenden).
Die Oracle FAQ lautet:
Oracle erlaubt nur das Hinzufügen von Spalten zum Ende einer vorhandenen Tabelle.
Sie müssten Ihre Tabelle neu erstellen.
%Vor%Die einfachste Möglichkeit, die logische Reihenfolge der Spalten einer Tabelle zu ändern, besteht darin, die Tabelle umzubenennen und eine Ansicht mit den Spaltenpositionen "rechts" zu erstellen:
%Vor%Ihre Anwendung verhält sich so, als wären die Spalten in der "richtigen" Position. Sie müssen die physische Struktur nicht berühren.
Wenn nicht viele Daten / Spalten vorhanden sind, können Sie die Spalten einfach in der gewünschten Reihenfolge umbenennen. Dann lösche einfach * aus 'Dein Tabellenname hier'. Dies war eine gute Lösung für mich, da ich noch nicht viele Aufzeichnungen eingefügt hatte.
In Oracle 12c ist es jetzt einfacher, Spalten logisch neu anzuordnen. Dies kann erreicht werden, indem die Spalte unsichtbar / sichtbar gemacht wird. Wenn Sie eine unsichtbare Spalte in "sichtbar" ändern, erscheint die Spalte zuletzt in der Reihenfolge.
Berücksichtigen Sie die Verwendung unsichtbarer Spalten
Erstellen Sie eine wxyz-Tabelle:
CREATE TABLE t (
w INT,
y VARCHAR2,
z VARCHAR2,
x VARCHAR2
);
Ordne die x-Spalte in der Mitte an:
ALTER TABLE wxyz ÄNDERN (y INVISIBLE, z INVISIBLE); ALTER TABLE wxyz ÄNDERN (y VISIBLE, z SICHTBAR);
BESCHREIBEN wxyz;
w
x
y
z
Nicht möglich, Spalte in Oracle zu verschieben. Es wird an der letzten Position erstellt. Wenn jemand wollte, muss entweder eine Ansicht erstellt oder eine neue Tabelle erstellt werden.
Sie möchten möglicherweise über eine Ansicht auf Ihre Tabelle zugreifen, sodass Sie die logische Reihenfolge problemlos neu anordnen können, wenn sie für die Anwendungstechnologie wichtig ist.