Datensatz (Zeile) auf andere Zeilen übertragen

querytail

Erfahrenes Mitglied
Hallo zusammen,

meine Tabelle enthält einen kompletten Datensatz ID 1:

Code:
Tab: mech
ID | S1 | S2 | S3|S4  | S5
---|-----|----|---|----|---
 1 | rab |arb |er| rab|
 2 |     |    |  |    |
 3 |     |    |  |    |    |

Nun möchte ich die Daten " rab | arb | er | rab|" auf die Zeilen mit den IDs 2 und 3 (bis 1000) übertragen.


So wie folgt wird mir immer nur eine neue Zeile ohne ID geschrieben
Code:
CREATE TEMPORARY TABLE tmp SELECT * FROM mech
 WHERE id = '1';

UPDATE tmp SET id = NULL;

INSERT INTO mech SELECT * FROM tmp;

Danke im Voraus.

Grüße

querytail
 
MySQL?
Die Spalte ID muss einen AutoIncrement bei MySQL oder einen Trigger mit einer Sequenz bei Oracle haben.
 
Hallo,

die ID wird zur Zuordnung benötigt, dh. die Werte kommen aus einer anderen Tabelle.

Aber eigentlich kann ich noch eine Spalte vorsetzen, wüßte aber trotzdem nicht, wie das funktionieren soll.

Viele Grüße

querytail
 
Ich versteh nicht was du wirklich mache willst. Wozu eine temporäre Tabelle?
Warum setzt du die ID auf NULL?
Sollen die Zeilen deiner Quelltabelle angefügt werden oder einer anderen?
Kann es zu Schlüsselverletzungen kommen?
 
Achso, nein das war nur ein Versuch, das irgendwie hinzubekommen. Hab ich irgendwo gefunden.

Es geht nur um die Tabelle mech, die eine Zeile mit Einstellungen enthält. Diese muss ich in die anderen Zeilen kopieren.
 
Sind die anderen Zellen schon vorhanden und werden überschreiben oder müssen sie generiert werden?
Bitte beschreibe dein Problem etwas ausführlicher.
 
Guten Morgen,

ja, die ID ist in jeder Zeile vorhanden, d.h. die Zeilen müssen mit den anderen Daten ergänzt werden.

Grüße

querytail
 
etwa so
SQL:
UPDATE
	myTable	AS updateT,
	myTable	AS sourceT
SET
	updateT.s1 = sourceT.s1,
	updateT.s2 = sourceT.s2,
	updateT.s3 = sourceT.s3,
	updateT.s4 = sourceT.s4,
	updateT.s5 = sourceT.s5
WHERE
	sourceT.id = 1
	AND updateT.id BETWEEN 2 AND 1000
;
 
Zuletzt bearbeitet von einem Moderator:
Zurück