Först måste jag säga:dålig idé att göra på det här sättet. Av två skäl:
- Anslutningar är baserade på användare. Det betyder att du i stort sett förlorar fördelarna med anslutningspooling. Den skalar inte heller särskilt bra. Om du har 10 000 användare på en gång, kommer du att kontinuerligt öppna och stänga hårda anslutningar (istället för mjuka anslutningspooler); och
- Som du har upptäckt är att skapa och ta bort användare DDL, inte DML och därmed förlorar du "transaktionalitet".
Jag är inte säker på varför du har valt att göra det här men jag skulle starkt rekommenderar att du implementerar användare i applikationen och inte i databaslagret.
När det gäller hur du löser ditt problem kan du i princip inte. Samma som om du skulle skapa en tabell eller ett index i mitten av din sekvens.