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

Je reçois Code d'erreur: 1062 Duplicate entry '5890738' for key 'PRIMARY'Erreur 1062 dans une base MySQL

Comment résoudre ce que je veux seulement 6 mois de données, mais ce tableau contient 6 données ans?

+0

Vous voulez réinsérez dans la même table? Ça n'a aucun sens –

+0

Je suis avec lui ^, vous voulez dupliquer les données? – sagi

Répondre

0

Ce que vous obtenez comme erreur signifie que vous essayez d'insérer id (qui une clé primaire et unique) fois deux fois, pour résoudre que vous devez utiliser quelque chose comme ça:

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); 

Note: Id doit être auto colonne -increment

+0

Vous supposez que la colonne 'ID' est incrémentée automatiquement? – sagi

+0

@sagi oui, avec incrément auto d'id – Imanez

0

Utilisez requête MySQL:

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);