Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 06.04.04 15:58 
Hi,
ich habe eine MySQL Datenbank.
Nun habe ich eine Tabelle, zb User.

In dieser Tabelle befinden sich folgendes Zeilen:
  • username
  • passwort
  • email
  • active
  • icq


Nun möchte ich gerne, dass die zeile icq nicht an letzter stelle steht, sondern an 2 Stelle, sodass das ganze dann so aussieht:
  • username
  • icq
  • passwort
  • email
  • active


Ist sowas möglich?

Achja, wenn die Zeilen keine Informatioen enthalten würden, wäre das ganze recht einfach, mit löschen und neu erstellen, doch es befinden sich ca. 200 Einträge in dieser Tabelle !!


Kann ich also die zeile in ihrer reihenfolge verschieben?

thx hibbert

Moderiert von user profile icontommie-lie: Topic verschoben

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
atarigold
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

WIN XP, Linux 2.4
D7, Delphi 2006 Prof
BeitragVerfasst: Di 06.04.04 19:11 
Bei einer SQL-DB ist die Reihenfolge der Spalten völlig egal, da du über eine Abfrage (TQuery) die Ausgabereihenfolge sehr einfach steuern kannst.

Die SQL-Abfrage müßte etwa so formuliert werden:

SELECT username, icq, passwort, email, active FROM user

Wenn du zusätzlich Aliase verwendest, kannst du auch noch die Spaltenüberschrift beeinflussen, funktioniert wie folgt: SELECT username AS User, icq AS .....

Gruß
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 06.04.04 22:30 
mir geht es nicht um die abfrage, da weiß ich ja, dass es mir egal ist.

Ich möchte nur die User eines Community Systems in ein anderes übertragen.

Doch die reihenfolge der zeile ist anders, desshalb kann ich das nicht importieren.

hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Di 06.04.04 23:38 
hallo hibbert!

kann es sein, dass du in deinem ersten beitrag die begriffe 'zeilen' und 'spalten' vertauscht hast?
denn eine tabelle mit deiner beschreibung macht nicht viel sinn ;)

am einfachsten ist es, eine neue tabelle mit der reihenfolge der felder (spalten) zu erstellen, in der die anwendung die einträge erwartet und deine daten dorthin zu schaufeln. bei 200 datensätzen kann ja das keinen grossen zeitaufwand darstellen.
du könntest auch in deiner bestehenden tabelle neue spalte anlegen, die einträge umkopieren und die alten spalten löschen, sofern mysql 'alter table' versteht...

mfg, stefan
Larayna
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 47



BeitragVerfasst: Mi 07.04.04 10:12 
MySql versteht in der aktuellsten version eigentlich alle Standard-SQL-Statements, sollte also auch bei "alter" keine Probleme machen :).
Mir zumindest sind bisher keine begegnet.

_________________
Grüsse aus der anderen Realität
Larayna
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.04.04 10:40 
So sieht die Syntax aus:


ausblenden Quelltext
1:
ALTER TABLE table_name  CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER col_name]					


Hier noch der Link zum Nachlesen, da stehen noch ne Reihe andrer Möglichkeiten drin:

www.mysql.com/docume...tax.html#ALTER_TABLE

Viele Grüße,

Matthias

_________________
Ha! Es compiliert! Wir können ausliefern!
atarigold
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

WIN XP, Linux 2.4
D7, Delphi 2006 Prof
BeitragVerfasst: Mi 07.04.04 10:42 
Wenn ichs jetzt recht verstanden habe, willst du also nur aus einer Tabelle user Daten in eine 2 Tabelle (tabelle2) importieren und letzere hat eine andere Reihenfolge der Spalten.

INSERT INTO tabelle2 SELECT username, icq, passwort, email, active FROM user

Sollte die Spaltenzahl in Tabelle 2 nicht identisch sein, muß entsprechend vor dem Select noch die Spaltenliste angegeben werden.