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

Also ich verstehe deine Frage nicht so richtig. Denn was hat den die Anordnung der Spalten in einer Tabelle mit einem Update zu tun? Vielleicht versuchst du das mal etwas genauer zu erläutern.

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
Leider benötige ich diese Inhalte nur noch in einer SQL-Datei (wie bei phpMyAdmin die Export Funktion), wie bekomme ich das hin?
mysqldump dürfte Dein Freund werden;)
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?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...