sql >> Database >  >> RDS >> Oracle

Unit testing DDL statements die in een transactie moeten zitten

Allereerst moet ik zeggen:slecht idee om het op deze manier te doen. Om twee redenen:

  1. Verbindingen zijn gebaseerd op gebruiker. Dat betekent dat u de voordelen van pooling van verbindingen grotendeels verliest. Het schaalt ook niet erg goed. Als je 10.000 gebruikers tegelijk hebt, zul je voortdurend harde verbindingen openen en sluiten (in plaats van zachte verbindingspools); en
  2. Zoals je hebt ontdekt, is het maken en verwijderen van gebruikers DDL en geen DML en verlies je dus de "transactionaliteit".

Ik weet niet zeker waarom je ervoor hebt gekozen om dit te doen, maar ik zou sterk raad u aan gebruikers te implementeren in de applicatie en niet in de databaselaag.

Wat betreft hoe u uw probleem kunt oplossen, in principe kunt u dat niet. Hetzelfde alsof u een tabel of een index in het midden van uw reeks maakt.



  1. Zijn mijn MySQL-serververbindingen versleuteld en veilig?

  2. Zet JPA, MySQL en TinyInt(1) in de slaapstand voor Boolean in plaats van bit of char

  3. node-postgres $1 IS NULL fout

  4. Azure-automatiseringsmethoden