Mysql
 sql >> база данни >  >> RDS >> Mysql

COMMIT ИЛИ conn.setAutoCommit(true)

Като цяло трябва да използвате Connection.commit() а не Connection.setAutoCommit(true) за извършване на транзакция, освен ако не искате да преминете от използване на транзакция към модела „транзакция на изявление“ на autoCommit.

Това каза, извикване на Connection.setAutoCommit(true) докато в транзакция ще извърши транзакцията (ако драйверът е в съответствие с раздел 10.1.1 от спецификацията JDBC 4.1). Но наистина трябва да правите това само ако искате да останете в autoCommit след това, тъй като разрешаването/деактивирането на autoCommit за връзка може да има по-високи разходи за връзка, отколкото простото извършване (напр. тъй като трябва да превключва между мениджъри на транзакции, направете допълнителни проверки и др.).

Трябва също да използвате Connection.commit() и не използвайте собствената SQL команда COMMIT . Както е описано подробно в документацията за свързване:

Работата е там, че команди като commit() и setAutoCommit(boolean) може да свърши повече работа във фонов режим, като затваряне на ResultSets и затваряне или нулиране на Statements . Използване на SQL командата COMMIT ще заобиколи това и потенциално ще доведе вашия драйвер/връзка в неправилно състояние.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получа идентификатора на множество вмъкнати редове в MySQL?

  2. не може да показва символ на търговска марка в mysql към html

  3. Грешка в .Net MySql. Даденият ключ не присъства в речника

  4. SQL QUERY Проблем с подреждането на резултата

  5. Колона, изчислена от друга колона?