Quickly duplicate a row in MySQL

A quick way of duplicating a row in a table without running into duplicate key errors or having to type out all the field names…

Not quite a one-liner, but very straightforward.

/*
Duplicate row 58 from mytable
*/
CREATE TEMPORARY TABLE tmptable  SELECT * FROM mytable WHERE id = 58;

/*
Change the unique key
*/
UPDATE tmptable SET id=0; 

/* 
Insert the duplicate row into the original table
*/
INSERT INTO mytable SELECT * FROM tmptable;

/* 
Drop the temporary table
*/
DROP TABLE tmptable;