2016-10-26 8 views
-1
INSERT INTO order SELECT * FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH); 

Ich erhalte Fehlercode: 1062 Duplicate entry '5890738' for key 'PRIMARY'Fehler 1062 in mysql

Wie dieses Problem zu beheben, wie ich will nur 6 Monate Daten, aber diese Tabelle enthält 6 Jahre Daten?

+0

Sie wollen in der gleichen Tabelle wieder einzuführen? Macht keinen Sinn –

+0

Ich bin bei ihm^willst du die Daten duplizieren? – sagi

Antwort

0

Was Sie als Fehlermeldung erhalten, bedeutet, dass Sie versuchen, id (die eine primäre und eindeutige Schlüssel) zweimal mal, einfügen zu lösen, dass man so etwas verwenden müssen:

INSERT INTO order(all your columns except Id_column) SELECT all your columns except Id_column FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH); 

Hinweis: Id Auto sein muss -increment Spalte

+0

Sie gehen davon aus, dass die 'ID'-Spalte ein automatisches Inkrement ist? – sagi

+0

@sagi ja, mit ID Autoinkrement – Imanez

0

Verwenden MySQL-Abfrage:

INSERT INTO order(all your columns except Id_column) 
SELECT all your columns except Id_column 
FROM order WHERE date > DATE_SUB(NOW(), INTERVAL 6 MONTH); 
Verwandte Themen