Załóżmy, że mam tabelę foo
, która zawiera pewne statystyki, które są obliczane co jakiś czas. Jest intensywnie wykorzystywany przez inne zapytania.
Dlatego chcę obliczyć najnowsze statystyki foo_new
i zamienić je, gdy obliczenia będą gotowe.
mógłbym zrobić
ALTER TABLE foo RENAME foo_tmp;
ALTER TABLE foo_new RENAME foo;
ale co się stanie, jeśli zapytanie potrzebuje tabeli foo
między tymi dwoma wierszami, gdy nie ma tabeli foo
? Chyba muszę to jakoś zablokować ... czy jest inny sposób?
tableX
że istnieje odwołanie do ograniczenia rodzicafoo
. Po tej zmianie nazwy będzie się teraz pojawiać odniesienie,foo_old
ale jeśli nie ma żadnych ograniczeńfoo
, powinieneś być OK ...FOREIGN KEYs
.