sql >> Databáze >  >> RDS >> Mysql

COMMIT OR conn.setAutoCommit(true)

Obecně byste měli používat Connection.commit() a nikoli Connection.setAutoCommit(true) k potvrzení transakce, pokud nechcete přejít z používání transakce na model „transaction per statement“ (transakce na příkaz) autoCommit.

To znamená volání Connection.setAutoCommit(true) zatímco v transakci potvrdí transakci (pokud je ovladač v souladu s částí 10.1.1 specifikace JDBC 4.1). Ale měli byste to udělat opravdu jen v případě, že chcete zůstat v autoCommit poté, protože povolení / zakázání automatického potvrzení u připojení může mít na připojení vyšší režii než pouhé potvrzení (např. protože potřebuje přepínat mezi správci transakcí, proveďte další kontroly , atd.).

Měli byste také použít Connection.commit() a nepoužívejte nativní SQL příkaz COMMIT . Jak je podrobně popsáno v dokumentaci připojení:

Jde o to, že příkazy jako commit() a setAutoCommit(boolean) může udělat více práce na pozadí, jako je zavření ResultSets a zavření nebo resetování Statements . Pomocí SQL příkazu COMMIT toto obejde a potenciálně uvede váš ovladač / připojení do nesprávného stavu.



  1. MySQL s Node.js

  2. Denormalizace:Kdy, proč a jak

  3. Počítejte velká písmena v řetězci

  4. SQLite Zobrazit tabulky