Leonard Challisのテクニックをいくつか変更して使用しました:
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;
一時テーブルとして、複数のレコードが存在することはないため、主キーについて心配する必要はありません。 nullに設定すると、MySQLが値自体を選択できるため、重複が作成されるリスクはありません。
挿入する行が1つだけであることを確認したい場合は、INSERTINTO行の最後にLIMIT1を追加できます。
一時テーブル名に主キー値(この場合は1)も追加したことに注意してください。