Very short trick: duplicate or clone one or more rows in MySQL

To duplicate the contents of a table full of itself, just use:

1
* FROM MYTABLE INSERT INTO SELECT * FROM MyTable MYTABLE

You can also use the Claus WHERE if necessary:

1
* FROM MYTABLE WHERE a = b INSERT INTO SELECT * FROM MyTable WHERE MYTABLE a = b

If the table has any index or unique key, which would cause an error, you can filter the fields to be duplicated:

1
field1 , field2 , ... ) SELECT field1 , field2 , ... FROM MYTABLE INSERT INTO MYTABLE (field1, field2, ...) SELECT field1, field2, ... FROM MyTable

Even you can duplicate a record and change a value, such as dual field and add 1:

1
field1 , field2 , ... ) SELECT ( field1 + 1 ) , field2 , ... FROM MYTABLE INSERT INTO MYTABLE (field1, field2, ...) SELECT (field1 + 1), field2, ... FROM MyTable

There are no comments for this post

Leave a comment

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Stop SOPA