Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: SQL Nur existierende Spalten kopieren
AUTOR BEITRAG
marinE

RANG Deckschrubber

#1 - 24.01 13:01

code:
Tabelle_1
---------
- Feld1
- Feld2
- Feld3
---------

Tabelle_2
---------
- Feld2
- Feld3
- Feld4


Tach zusammen. Ich möchte gerne einen Eintrag aus der ersten Tabelle rüber in die zweite Tabelle kopieren, kenne dabei aber weder die Feldbezeichnungen der ersten noch der zweiten Tabelle.
code:
INSERT INTO Tabelle_2 (SELECT * FROM Tabelle_1 WHERE id = 4711)

schmeißt mir natürlich zurück 'falsche Feldbenamungen, dat passt nit'.

Gibt es einen Weg, mit dem ich nur die Felder aus der Ursprungstabelle rüberkopiere, die in der Zieltabelle vorhanden sind? Also quasi so ne Art:
code:
INSERT INTO Tabelle_2 (SELECT EXISTING IN Tabelle_2 FROM Tabelle_1 WHERE id = 4711)


??

Danke im Vorraus, wenn ich einen bösen Denkfehler dabei eingebaut habe, bin ich für verbale Korrigierungen gerne dankbar :)
Crush (korrumpiert die Jugend)

RANG Master of Clanintern

#2 - 24.01 15:51

Je nachdem welche Datenbank du verwendest, könntest du die Feldbezeichnungen herausfinden indem du den Umweg über die Metatabellen gehst, in denen du Informationen über die Tabellen in der Datenbank findest. Wie genau diese Metatabellen heissen und wie sie aufgebaut sind, hängt davon ab welche SQL Datenbank du verwendest. Bei SQLite gibt es z.B. die Tabelle sqlite_master.
vaest´ark // patrick *circle of confusion*

RANG Master of Clanintern

#3 - 24.01 16:26

erstell dir ein view auf die alte tabelle und kopiere die daten von dort aus in die neue tabelle.
deluxe *photoenthusiast*

RANG Master of Clanintern

#4 - 24.01 23:48

Über die DB selbst k.A.
Mit dem View wird nicht gehn wenn du in beiden Tabellen die Spalten nicht kennst.

SHOW COLUMNS ... und Umweg über ne Applikation?
vaest´ark // patrick *circle of confusion*

RANG Master of Clanintern

#5 - 25.01 22:25

hm, ja. ich war davon ausgegangen das die spaltennamen in beiden tabellen bekannt sind.
wenn die nicht bekannt sind, bleibt wohl nur der weg über eine applikation.