Datensatz geschickt kopieren.

topf

Mitglied
Hallo,
ich finde einfach keine Lösung für ein bestimmtes Problem:

Ich habe eine relativ große Tabelle mit ca 30-40 Spalten, einem Primary Key ( auto increment ) und einem Unique-Index über 2 weitere Spalten.
Diese zwei Spalten müssen folglich immer anders sein.

Wie schaffe ich es bei Neuanlage eines Datensatzes die Werte eines "Standarddatensatzes" zu kopieren, ohne alle 30 Spalten aufzulisten?
ALSO ungefähr so :

" INSERT IGNORE INTO tab1 ( bezugswert_eins, bezugswert_zwei, *(alles andere) VALUES (1, 2, SELECT *(alles andere, außer primary_key bezugswert_eins, bezugswert_zwei) FROM tab1 WHERE primary_key = 1) "

Ich komm da echt nicht weiter. Und 30 Spalten auflisten, die sich möglicherweise noch ändern, will ich irgendwie nicht.

Danke für jede Hilfe!

Vielleicht ist mir die Umschreibung einfach nicht gelungen, dann einfach einen Kommentar hinterlassen .

Gruß
 
Es sieht so ähnlich aus.
Code:
INSERT IGNORE INTO tab1 (bezugswert_eins, bezugswert_zwei, …) SELECT 1, 2, … FROM tab1 WHERE primary_key = 1
Die beiden Ellipsen sind durch die entsprechenden restlichen Spaltennamen zu ergänzen.
 
Hi und vielen Dank für das Lesen meines Beitrags ;)
Danke auch für den fixen Lösungsansatz, Gumbo.

Hehe,mein Riecher war nicht so verkehrt, allerdings habe ich jetzt immernoch das gleiche Problem, da ich immernoch alle Spaltennamen auflisten muss.

Gibt es da nichts, womit ich einfach die ersten drei Spalten wegfallen lassen kann oder die Spalten primary_key, bezugswert_eins, bezugswert_zwei ?

Gruß und nochmals Danke!
 
Du könntest nur bei der Angabe der Zieltabelle die Spaltenbezeichner weglassen, also:
Code:
INSERT IGNORE INTO tab1 SELECT 1, 2, … FROM tab1 WHERE primary_key = 1
Das andere ist aber notwendig.
 
Zurück