Supposons que j'ai un tableau foo
contenant des statistiques calculées de temps en temps. Il est fortement utilisé par d'autres requêtes.
C'est pourquoi je veux calculer des statistiques plus récentes foo_new
et les échanger lorsque le calcul est prêt.
je pourrais faire
ALTER TABLE foo RENAME foo_tmp;
ALTER TABLE foo_new RENAME foo;
mais que se passe-t-il si une requête a besoin d'une table foo
entre ces deux lignes lorsqu'il n'y a pas de table foo
? Je suppose que je dois le verrouiller d'une manière ou d'une autre ... ou y a-t-il un autre moyen de le faire?
tableX
ce problème, il ya un référencement de la contrainte parentalefoo
. Après ce RENAME, ce sera le référencementfoo_old
mais s'il n'y a pas de contraintes de référencement, toutfoo
devrait bien seFOREIGN KEYs
.