Select where value in row is different and update
update cartographic_text_vm 
set primary_key = new.primary_key 
from 
    (select *  
     from cartographic_text_vm 
     where (fid, ckpt) in 
         (select fid, min(ckpt) 
          from cartographic_text_vm 
          group by fid)
    ) new 
where cartographic_text_vm.fid = new.fid 
  and cartographic_text_vm.primary_key != new.primary_key;