Tôi có thể khôi phục sau khi cam kết mysql không?
Đôi khi bạn có thể cần hoàn tác các thay đổi đã thực hiện đối với cơ sở dữ liệu MySQL. Bạn có thể dễ dàng làm điều đó bằng cách sử dụng MySQL Rollback query. Đây là cách khôi phục cơ sở dữ liệu MySQL bằng lệnh MySQL Rollback Show
Khôi phục MySQL hoạt động như thế nàoCâu lệnh Rollback của MySQL cho phép bạn khôi phục hoặc hoàn tác thêm một câu lệnh đã được thực hiện gần đây. Ví dụ: nếu bạn vô tình xóa hoặc cập nhật các hàng, bạn có thể sử dụng MySQL khôi phục các câu lệnh đó và khôi phục cơ sở dữ liệu ban đầu. Tuy nhiên, khôi phục MySQL chỉ hoạt động nếu các thay đổi cơ sở dữ liệu KHÔNG được cam kết với cơ sở dữ liệu Phần thưởng đọc. Cách sử dụng Tổng hợp MySQL
Chúng ta có thể quay lại sau khi cam kết trong MySQL khôngKhông. Thật không may, bạn không thể hoàn tác các thay đổi đã được cam kết với cơ sở dữ liệu
Cách khôi phục cơ sở dữ liệu MySQLXin lưu ý, theo mặc định, MySQL được cấu hình để tự động thực hiện mọi truy vấn SQL. Vì vậy, điều quan trọng là tắt tự động cam kết trong MySQL bằng cách sử dụng câu lệnh sau, nếu bạn muốn có thể sử dụng MySQL Rollback Đăng nhập vào cơ sở dữ liệu MySQL và chạy lệnh sau để tắt autocommit SET autocommit = 0 Hoặc SET autocommit = OFF Bạn sử dụng câu lệnh sau để bật chế độ autocommit một cách rõ ràng SET autocommit = 1 Hoặc SET autocommit = ON
Phần thưởng đọc. Cách kiểm tra phiên bản MySQL
Giả sử bạn có bảng bán hàng sau(product,order_date,sale). Chúng tôi sẽ xem xét cách phát hành khôi phục MySQL sau lệnh xóa mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+
Bây giờ chúng ta hãy tắt autocommit như đã đề cập ở trên, mysql> set autocommit=0;
Tiếp theo, hãy để chúng tôi xóa tất cả các hàng trong bảng bán hàng mysql> delete from sales; Query OK, 5 rows affected (0.00 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 0 | +----------+ Như bạn có thể thấy tất cả 5 hàng trong bảng bán hàng đã bị xóa
Bây giờ, chúng ta hãy phát hành MySQL Rollback sau lệnh xóa mysql> rollback; Query OK, 0 rows affected (0.07 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 5 | +----------+ Như bạn có thể thấy, 5 hàng đã xóa đã được khôi phục do các thay đổi không được cam kết. Tuy nhiên, nếu bạn gặp sự cố với câu lệnh COMMIT sau khi xóa và trước lệnh ROLLBACK, thì MySQL sẽ không khôi phục bảng của bạn
Phần thưởng đọc. Cách vô hiệu hóa kiểm tra khóa ngoại trong MySQL
Lệnh cập nhật khôi phục MySQLTương tự, bạn có thể khôi phục lệnh cập nhật. Hãy để chúng tôi cập nhật cột bán hàng trong bảng bán hàng ở trên ________số 8Như bạn có thể thấy, chúng tôi đã tăng gấp đôi giá trị của cột giảm giá. Bây giờ chúng ta hãy rollback lệnh cập nhật mysql> rollback; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+ Như bạn có thể thấy các giá trị cũ của cột bán hàng đã được khôi phục Bạn cũng có thể bao gồm Khôi phục MySQL trong các thủ tục được lưu trữ và giao dịch MySQL cho Khôi phục MySQL do lỗi. Điều quan trọng là vô hiệu hóa autocommit để thực thi khôi phục MySQL Trong hướng dẫn này, bạn đã học cách sử dụng các câu lệnh giao dịch MySQL bao gồmSET autocommit = OFF08 SET autocommit = OFF18and SET autocommit = OFF01 để quản lý giao dịch Có thể khôi phục sau khi cam kết trong MySQL không?COMMIT lưu vĩnh viễn các thay đổi được thực hiện bởi giao dịch hiện tại. ROLLBACK hoàn tác các thay đổi được thực hiện bởi giao dịch hiện tại. 2. Giao dịch không thể hoàn tác các thay đổi sau khi thực hiện CAM KẾT .
Bạn có thể khôi phục sau khi cam kết SQL không?Không thể khôi phục giao dịch sau khi câu lệnh CAM KẾT GIAO DỊCH được thực thi , trừ khi GIAO DỊCH CAM KẾT được liên kết với giao dịch lồng nhau có trong giao dịch đang được khôi phục.
Có cần cam kết sau khi khôi phục không?Nếu bạn khôi phục giao dịch, tất cả các thay đổi được thực hiện trong giao dịch đó chỉ là. quay trở lại, hủy bỏ. Vì vậy, cam kết của bạn trong khối cuối cùng sẽ không làm gì , ít nhất là khi bạn không có giao dịch nào khác đang chờ. |