De enige andere optie is om handmatig te doen wat veel RDBMS-systemen toch doen...
- Een nieuwe tabel maken
U kunt dan de inhoud van de oude tabel over een stuk tegelijk kopiëren. Terwijl u altijd voorzichtig bent met INSERT/UPDATE/DELETE op de brontabel. (Kan worden beheerd door een trigger. Hoewel dit een vertraging zou veroorzaken, is het geen slot...)
Als u klaar bent, wijzigt u de naam van de brontabel en wijzigt u vervolgens de naam van de nieuwe tabel. Bij voorkeur in een transactie.
Als u klaar bent, compileert u alle opgeslagen procedures enz. opnieuw die die tabel gebruiken. De uitvoeringsplannen zullen waarschijnlijk niet langer geldig zijn.
BEWERKEN:
Er zijn enkele opmerkingen gemaakt dat deze beperking een beetje mager is. Dus ik dacht:laat ik er een nieuw perspectief op plaatsen om te laten zien waarom het is zoals het is...
- Het toevoegen van een nieuw veld is als het wijzigen van één veld op elke rij.
- Veldsloten zouden veel moeilijker zijn dan rijsloten, laat staan tafelsloten.
- Je verandert eigenlijk de fysieke structuur op de schijf, elk record beweegt.
- Dit is echt een UPDATE voor de hele tafel, maar met meer impact...