J'ai utilisé la technique de Leonard Challis avec quelques modifications :
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
En tant que table temporaire, il ne devrait jamais y avoir plus d'un enregistrement, vous n'avez donc pas à vous soucier de la clé primaire. Le définir sur null permet à MySQL de choisir lui-même la valeur, il n'y a donc aucun risque de créer un doublon.
Si vous voulez être sûr que vous n'obtenez qu'une seule ligne à insérer, vous pouvez ajouter LIMIT 1 à la fin de la ligne INSERT INTO.
Notez que j'ai également ajouté la valeur de la clé primaire (1 dans ce cas) au nom de ma table temporaire.