Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

wegen eines Updates muss ich bei meiner DB zwei Spaltern vertauschen

also X1,X2,X3,X4 nach X3,X4,X1,X2

Gibt es einen MySQL Befehl dafür oder müsste ich die komplette DB auslesen und in eine neue eintragen?

Danke und Gruß

S8

Geschrieben

Okay...

Ich nutze eine Bilderdatenbank die ich wegen Umstieg auf ein anderes CMS akutalisieren muss. Dafür spiele ich die neuste Version ein, und um die nutzen zu können muss ich zwei Spalten wie oben beschrieben tauschen, sonst klappt das Update nicht.

Geschrieben

Ändert aber nicht an der Tatsache das man nicht erkennen kann wo da der sinn sein soll.

Wenn du ein "SELECT id,name,foto FROM tabelle WHERE 1", dann bekommst du die ergebnisse in der Reinfolge id-name-foto, auch wenn die reinfolge in der die Tabellen mal angelegt worden sind name-foto-id ist.

Geschrieben
Für die Datenbank ist die Reihenfolge der Spalten doch total egal oder ?
Im Prinzip ja! Kritisch wird es nur bei schlampig programmierten Anwendungen, die erst mit select * auf die Tabelle zugreifen und sich dann darauf verlassen, dass die Felder in einer bestimmten Reihenfolge drinstehen würden.
Geschrieben
Sowas sollte man ja auch nicht nutzen!!!
Hab ich das behauptet? ;)

Nee, vielmehr hab ich einen Hinweis gegeben, warum man sich "sowas" gar nicht erst angewöhnen sollte. Und ich sprech da aus leidlicher Erfahrung:hells:

Geschrieben

Hallo, Beitrag 4 hilft mir schomal weiter, damit kann ich die Inhalte der DB sortiert ausgeben lassen.

Leider benötige ich diese Inhalte nur noch in einer SQL-Datei (wie bei phpMyAdmin die Export Funktion), wie bekomme ich das hin?

S8

Geschrieben

Super, nur habe ich leider keine Freunde.... ;)

Nun brauche ich nur noch die Möglichkeit, meinen MySQL Befehl zum auslesen der einzelnen Spalten mit dem MySQLdump zu kombinieren, weil wie ich das bisher verstanden habe, ist genau das mein Problem...

S8

Geschrieben

wegen eines Updates muss ich bei meiner DB zwei Spaltern vertauschen

also X1,X2,X3,X4 nach X3,X4,X1,X2

Gibt es einen MySQL Befehl dafür oder müsste ich die komplette DB auslesen und in eine neue eintragen?


INSERT INTO foo VALUES (1,"bar","blubb","lorem ipsum");

SELECT * FROM foo;

+--------+--------------+--------------+--------------+

| foo_id | foo_content1 | foo_content2 | foo_content3 |

+--------+--------------+--------------+--------------+

|      1 | bar          | blubb        | lorem ipsum  |

+--------+--------------+--------------+--------------+


ALTER TABLE foo CHANGE COLUMN foo_content1 foo_content1 varchar(128) AFTER foo_content2;

SELECT * FROM foo;

+--------+--------------+--------------+--------------+

| foo_id | foo_content2 | foo_content1 | foo_content3 |

+--------+--------------+--------------+--------------+

|      1 | blubb        | bar          | lorem ipsum  |

+--------+--------------+--------------+--------------+

War das vielleicht gewünscht?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...