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;