n'abend,
ich suche nach einer Möglichkeit mittels eines SQL-Befehls alle Spaltennamen einer Tabelle in eine andere einzulesen:
vielleicht hilft dir das SHOW COLUMNS (aka DESCRIBE) Statement weiter?
Mit "INSERT INTO "Tab b" (spalten) VALUE (SELECT....) wird es ja nicht funktionieren.
SELECT ist nicht so ganz dein Freund, da du ja statt der Daten der Tabelle eher die Metadaten (oder eigentlich eher Strukturinformationen) der Tabelle auslesen möchtest. Mit »INSERT INTO ... SELECT ...« bist du an sich mal nicht auf dem Holzweg. Folgendes scheint aber wohl (zumindest unter MySQL 5.0.45) nicht zu funktionieren:
INSERT INTO counting (name)
SELECT t.Field
FROM (
SHOW COLUMNS
FROM tabellenName
FROM datenbankName
) AS t;
/* Wirft Fehler:
* #1064 - You have an error in your SQL syntax;
* check the manual that corresponds to your MySQL
* server version for the right syntax to use
* near 'SHOW COLUMNS
*/
Scheinbar lässt sich mit der Ergebnismenge eines SHOW Statements in kapselnden Queries nichts mehr weiter anfangen.
Eine weitere Möglichkeit wäre ggf die information_schema Datenbank, sofern du Zugriff darauf hast. Die Tabelle "columns" enthält alle relevanten Werte:
SELECT COLUMN_NAME FROM
COLUMNS WHERE TABLE_SCHEMA = 'datenbankName' AND TABLE_NAME = 'tabellenName'
Ist auch das nicht der Fall, wird dir vermutlich nur noch eine Option bleiben; In der ersten Abfrage die Werte ermitteln (SHOW COLUMNS), in deiner Applikation (PHP, Python, Java, wasAuchImmer) die Daten in Form eines INSERT Statements aufbereiten und dieses wieder auf die DB feuern.
weiterhin schönen abend...
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|