Некоторые БД, такие как ms sql server, предоставляют тип данных guid, я не уверен насчет mysql.
В общем случае нет проблем с char или varchar в качестве первичного ключа, если они не слишком длинные. Обычно целые числа предпочтительнее, потому что они немного быстрее, но это зависит от того, насколько это важно для вас.
Эффективно, вы также можете использовать составной первичный ключ. Один компонент может быть вашим исходным первичным ключом, который уникален только в одном БД. Вторым компонентом может быть номер базы данных, если вы можете назначить уникальный номер каждой базе данных.
Вы также можете использовать следующую схему:
int newId = dbNumber * 10000 + iDInSmallDb;
Таким образом, последние 4 цифры - это исходный дБ, остальные цифры - номер дБ.