Some web hosts (such ad DigitalOcean managed databases) are now enforcing that all tables should have a primary key, as lack of a primary key on a table causes performance and replication issues.
To check if any of your tables lack a primary key, you can run the SQL query below. Ideally this query should return an empty result set.
USE INFORMATION_SCHEMA; SELECT TABLES.table_name FROM TABLES LEFT JOIN KEY_COLUMN_USAGE AS c ON ( TABLES.TABLE_NAME = c.TABLE_NAME AND c.CONSTRAINT_SCHEMA = TABLES.TABLE_SCHEMA AND c.constraint_name = 'PRIMARY' ) WHERE TABLES.table_schema <> 'information_schema' AND TABLES.table_schema <> 'performance_schema' AND TABLES.table_schema <> 'mysql' AND c.constraint_name IS NULL;
Source / further reading