What good is a table that has no primary key? In 20 years of designing
databases large and small I cannot recall a single case where it would have
been appropriate having a table without primary key.
Just consider the following scenario: for some reason (eg programmatic error)
an identical record is inserted twice. You want to get rid of one copy.
Unless you use a backend that generates some sort of unique feature (eg OID
in PostgreSQL) you will find that you can't.