Cara yang biasanya saya lakukan adalah menggunakan tabel sementara. Ini mungkin tidak efisien secara komputasi tetapi tampaknya berfungsi dengan baik! Di sini saya menduplikasi rekor 99 secara keseluruhan, membuat rekor 100.
CREATE TEMPORARY TABLE tmp SELECT * FROM invoices WHERE id = 99;
UPDATE tmp SET id=100 WHERE id = 99;
INSERT INTO invoices SELECT * FROM tmp WHERE id = 100;
Semoga itu berhasil untuk Anda!