Eine Zeiler einer Tabelle (MySQL) kopieren

SwissError

Grünschnabel
Hi, ich müsste die exakt gleichen werte einer row der table in die gleiche table wieder reinschreiben.
Hierfür hab ich den codeschnipsel:
Code:
INSERT INTO sys_jobadmin_jobs 
SELECT * 
FROM sys_jobadmin_jobs
WHERE job_id = '".$_VARS['id']."'

Nur gibt das die fehlermeldung: Duplicate entry '1' for key 1

Natürlich wegen der auto increment ID. Aber kann ich das auch umgehen? Ich möchte einen codehack mit daten holen und dann wieder speichern vermeiden....
 
Mache doch ein update anstelle eines inserts.
wenn du beim update keine spalten angibt geht er normalerweise einfach von links nach rechts durch.
Und das Problem hat meine neugier gewekt.. wie kommt man dazu so etwas zu brauchen?
 
Einfach die ID nicht miteintragen.

Code:
INSERT INTO sys_jobadmin_jobs (daten1, daten2, ...)
SELECT daten1, daten2, ...
FROM sys_jobadmin_jobs
WHERE job_id = '".$_VARS['id']."'
 
Ich bin an einer kompletten buchhaltung am programmieren. und da ist das eine gewünschte "schnellfunktion" um ein Job zu erstellen.

Zum Update: Dann wird doch der vorhandene datensatz überschrieben, dabei möchte ich einen redundanten 2. datensatz bei dem halt einfach die id sich selbst setzt. Und

Code:
UPDATE sys_jobadmin_jobs SET
SELECT * 
FROM sys_jobadmin_jobs
WHERE job_id = '".$_VARS['id']."'
geht sowenig wie
Code:
UPDATE sys_jobadmin_jobs
SELECT * 
FROM sys_jobadmin_jobs
WHERE job_id = '".$_VARS['id']."'
 
SwissError hat gesagt.:
Ich bin an einer kompletten buchhaltung am programmieren. und da ist das eine gewünschte "schnellfunktion" um ein Job zu erstellen.

Zum Update: Dann wird doch der vorhandene datensatz überschrieben, dabei möchte ich einen redundanten 2. datensatz bei dem halt einfach die id sich selbst setzt.

Ok.. du KANNST in einer Tabelle keine zwei identischen Datensätze haben.. zumindest der Primärschlüssel sollte unterschiedlich sein...
Was mir noch einfallen würde: das AutoIncrement auf +2 statt +1, und dann einen Primärschlüssel im zweiten Datensatz +1.
 
Zurück