Ho usato la tecnica di Leonard Challis con alcune modifiche:
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;
Come tabella temporanea, non dovrebbe mai esserci più di un record, quindi non devi preoccuparti della chiave primaria. Impostarlo su null consente a MySQL di scegliere il valore stesso, quindi non c'è il rischio di creare un duplicato.
Se vuoi essere estremamente sicuro di ottenere solo una riga da inserire, puoi aggiungere LIMIT 1 alla fine della riga INSERT INTO.
Nota che ho anche aggiunto il valore della chiave primaria (1 in questo caso) al nome della mia tabella temporanea.