MySQL, как и Oracle, считает большинство операторов DDL (CREATE TABLE, ALTER TABLE и т. Д.) Причиной "неявного принятия". Вы не можете защитить другие соединения от просмотра изменений DDL с помощью модели транзакций. (Я думаю, что Postgres необычен в этом отношении).
Возможно, вы сможете заблокировать таблицы, используя LOCK TABLES, но я подозреваю, что вы потеряете блокировку, как только вы переименуете таблицу! LOCK DATABASE может работать, но вполне может потребовать, чтобы все другие клиенты полностью отключились, прежде чем ваш запрос на блокировку будет удовлетворен.
Это, конечно, приведет к блокировке других клиентов при переименовании таблиц, что, вероятно, является недорогой операцией.