Get primary keys for ALL tables in a given DB?

I am using the following bit of SQL to get a list of the primary keys in my DB , named ‘RMCMS’:

SELECT `COLUMN_NAME` , `TABLE_NAME`
FROM `statistics`
WHERE `INDEX_SCHEMA` = 'RMCMS'
AND `INDEX_NAME` = 'PRIMARY'
LIMIT 0 , 30

I was wondering if there was a more efficient way to do do this. I also have heard that information_schema is not always accessible (for example in a shared host) is this true?

Thanks in advance :slight_smile: