>I haven't knowingly specified any primary keys, do I have to have at least one? Believe or not my application doesn't need one, unless I have to because i'm bufferring or whatever?
If you use views, you should have a field, or a combination of fields, that uniquely defines each record in the table - whether you formally define it as a PK, or not. This field - or these fields - should be specified as the key fields in the view.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)