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

Giao dịch Mysql:cam kết và khôi phục

1) Tất cả các thay đổi bạn thực hiện đều hiển thị trong cùng một giao dịch. Nếu bạn làm như vậy

START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;

đầu ra của bạn sẽ bao gồm "Xin chào". Nhưng nếu bạn bắt đầu kết nối cơ sở dữ liệu thứ hai, hàng mới sẽ không được hiển thị cho đến khi bạn thực hiện giao dịch của mình từ bên trong kết nối đầu tiên. Hãy thử chơi với điều này bằng hai kết nối cơ sở dữ liệu bằng dòng lệnh.

Bạn không thấy hiệu ứng trong trang web của mình vì bạn không thể có cùng một giao dịch trong hai kết nối cơ sở dữ liệu (kết nối db mới sẽ được thực hiện khi bắt đầu yêu cầu của bạn).

2) Tất cả các giao dịch không được cam kết sẽ được khôi phục khi kết nối với cơ sở dữ liệu bị đóng. Vì vậy, nếu đây là hai truy vấn duy nhất của bạn, không có sự khác biệt. Tuy nhiên có sự khác biệt giữa

START TRANSACTION;
INSERT INTO MyTable VALUES ('This one would be discarded on rollback');
ROLLBACK;
INSERT INTO MyTable VALUES ('This one will be permanent because not within transaction');  

3) Có, tất cả đều giống nhau.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ngày php / Mysql được lưu là '0000-00-00'

  2. Giá trị hạt giống MySQL RAND () gần như lặp lại

  3. Tạo một bài đăng có liên quan hoặc tương tự bằng PHP &MySQL

  4. Làm cách nào để tôi có thể lấy lại một cách đệ quy ID cha của các hàng trong bảng MySQL này?

  5. Máy chủ WAMP màu xanh lục nhưng chỉ nhận được 404