PS in 0.96, Class::DBI::_init contains the comment "# don't store it unless all keys are present" just before the section where the object is added to LiveObject index, but this appears to not be implemented! Or perhaps it was implemented and later reconsidered.