Użyłem techniki Leonarda Challisa z kilkoma zmianami:
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;
Jako tabela tymczasowa nigdy nie powinna istnieć więcej niż jeden rekord, więc nie musisz się martwić o klucz podstawowy. Ustawienie jej na null pozwala MySQL na wybranie samej wartości, więc nie ma ryzyka utworzenia duplikatu.
Jeśli chcesz mieć pewność, że otrzymujesz tylko jeden wiersz do wstawienia, możesz dodać LIMIT 1 na końcu wiersza INSERT INTO.
Zauważ, że dodałem również wartość klucza podstawowego (w tym przypadku 1) do nazwy mojej tabeli tymczasowej.