sql >> Database teknologi >  >> RDS >> Oracle

Enhedstest af DDL-udsagn, der skal være i en transaktion

Først og fremmest må jeg sige:dårlig idé at gøre det på denne måde. Af to grunde:

  1. Forbindelser er baseret på bruger. Det betyder, at du stort set mister fordelene ved forbindelsespooling. Den skalerer heller ikke særlig godt. Hvis du har 10.000 brugere på én gang, vil du løbende åbne og lukke hårde forbindelser (i stedet for bløde forbindelsespuljer); og
  2. Som du har opdaget, er oprettelse og fjernelse af brugere DDL ikke DML, og du mister derfor "transaktionalitet".

Ikke sikker på, hvorfor du har valgt at gøre det, men jeg ville stærkt anbefaler, at du implementerer brugere ved applikationen og ikke databaselaget.

Med hensyn til, hvordan du løser dit problem, kan du dybest set ikke. Det samme som hvis du oprettede en tabel eller et indeks midt i din sekvens.



  1. PostgreSQL-trigger returnerer ikke noget

  2. mysql flere instanser

  3. Hvordan samles datatyper som heltal (heltal med heltal) &varchar (varchar med varchar) i mysql?

  4. Codeigniters insert_batch() med tusindvis af inserts har manglende poster