Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

COMMIT HOẶC conn.setAutoCommit (true)

Nói chung, bạn nên sử dụng Connection.commit() chứ không phải Connection.setAutoCommit(true) để thực hiện một giao dịch, trừ khi bạn muốn chuyển từ sử dụng giao dịch sang mô hình 'giao dịch trên mỗi bản sao kê' của AutoCommit.

Điều đó nói rằng, gọi Connection.setAutoCommit(true) trong khi trong một giao dịch sẽ cam kết giao dịch (nếu trình điều khiển tuân thủ mục 10.1.1 của JDBC 4.1 spec). Nhưng bạn thực sự chỉ nên làm điều đó nếu bạn có ý định ở lại AutoCommit sau đó, vì việc bật / tắt autoCommit trên một kết nối có thể có chi phí cao hơn trên một kết nối so với chỉ cam kết (ví dụ:vì nó cần chuyển đổi giữa các trình quản lý giao dịch, hãy kiểm tra thêm , v.v.).

Bạn cũng nên sử dụng Connection.commit() và không sử dụng lệnh SQL gốc COMMIT . Như chi tiết trong tài liệu kết nối:

Vấn đề là các lệnh như commit()setAutoCommit(boolean) có thể thực hiện nhiều công việc hơn ở nền tảng, chẳng hạn như đóng ResultSets và đóng hoặc đặt lại Statements . Sử dụng lệnh SQL COMMIT sẽ bỏ qua điều này và có khả năng đưa trình điều khiển / kết nối của bạn vào trạng thái không chính xác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị tất cả các tên bảng trong php từ cơ sở dữ liệu MySQL

  2. nhận hàng có giá trị cao nhất trong MySQL

  3. Golang, mysql:Lỗi 1040:Quá nhiều kết nối

  4. SQL:Làm cách nào tôi có thể cập nhật một giá trị trên một cột chỉ khi giá trị đó là null?

  5. 4 cách để thay thế NULL bằng một giá trị khác trong MySQL