sql >> Database teknologi >  >> RDS >> Mysql

COMMIT ELLER conn.setAutoCommit(true)

Du bør generelt bruge Connection.commit() og ikke Connection.setAutoCommit(true) for at udføre en transaktion, medmindre du vil skifte fra at bruge transaktion til modellen 'transaktion pr. erklæring' af autoCommit.

Når det er sagt, kalder Connection.setAutoCommit(true) under en transaktion vil begå transaktionen (hvis driveren er i overensstemmelse med afsnit 10.1.1 i JDBC 4.1-specifikationen). Men du bør virkelig kun gøre det, hvis du mener at blive i autoCommit efter det, da aktivering/deaktivering af autoCommit på en forbindelse kan have højere overhead på en forbindelse end blot at forpligte sig (f.eks. fordi den skal skifte mellem transaktionsadministratorer, skal du foretage yderligere kontroller osv.).

Du bør også bruge Connection.commit() og ikke bruge den oprindelige SQL-kommando COMMIT . Som beskrevet i dokumentationen for forbindelsen:

Sagen er, at kommandoer som commit() og setAutoCommit(boolean) kan gøre mere arbejde i baggrunden, som at lukke ResultSets og lukning eller nulstilling af Statements . Brug af SQL-kommandoen COMMIT vil omgå dette og potentielt bringe din driver/forbindelse i en forkert tilstand.



  1. SELECT SUM returnerer en række, når der ikke er nogen poster

  2. Kan jeg registrere og håndtere MySQL-advarsler med PHP?

  3. Broken Pipe Exception on Grails App

  4. MYSQLi-fejl:Brugeren har allerede mere end 'max_user_connections' aktive forbindelser