Va bene... fai un INSERT totale allora (ma se non vuoi provare soluzioni alternative a priori non porti neanche il problema...): dovresti secondo me però inserire un "numero di revisione" e non basarti sull'id interno (tra l'altro gli ID di uno stesso record potrebbero - quasi sempre sarà così - NON essere consecutivi se sono state fatte nel frattempo modifiche ad altri record)... in pratica nella tabella "originale" potresti aggiungere un campo con il numero di revisione attuale (partendo da 1) e quando fai un update lo incrementi dopo aver copiato l'intero record (inclusa la revisione) sulla tabella di backup.
Per lo storico basta prendere dai backup il valore più alto della revisione che è quello attuale-1 e per "navigare" nello storico vai avanti/indietro con tale valore.