Supongamos que tengo una tabla fooque contiene algunas estadísticas que se calculan de vez en cuando. Es muy utilizado por otras consultas.
Es por eso que quiero calcular estadísticas más recientes foo_newe intercambiarlas cuando el cálculo esté listo.
Yo podría hacer
ALTER TABLE foo RENAME foo_tmp;
ALTER TABLE foo_new RENAME foo;
pero, ¿qué sucede si una consulta necesita una tabla fooentre esas dos líneas cuando no hay una tabla foo? Supongo que tengo que bloquearlo de alguna manera ... ¿o hay otra forma de hacerlo?

tableXtengo referencia de restricción principalfoo. Después de este RENAME, ahora se hará referencia,foo_oldpero si no hay restricciones,fooentonces debería estar bien ...FOREIGN KEYs.