Is there a way to use ON DUPLICATE KEY to Update all that I wanted to insert?
Unfortunately not. You can get half-way there by not having to repeat the value: INSERT INTO `tableName` (`a`,`b`,`c`) VALUES (1,2,3) ON DUPLICATE KEY UPDATE `a`=VALUES(`a`), `b`=VALUES(`b`), `c`=VALUES(`c`); But you still have to list the columns.