Làm thế nào để cam kết trong bàn làm việc mysql
Phân phối này có thể bao gồm các tài liệu được phát triển bởi bên thứ ba. Để biết giấy phép và thông báo ghi công cho các tài liệu này, vui lòng tham khảo tệp Giấy phép Show
Để biết thêm thông tin về MySQL Workbench, hãy truy cập http. // nhà phát triển. mysql. com/doc/bàn làm việc/vi Để tải xuống bổ sung và nguồn của MySQL Workbench, hãy truy cập http. // nhà phát triển. mysql. com/tải xuống MySQL Workbench được nhóm MySQL tại Oracle mang đến cho bạn Tổng quanMySQL Workbench là một công cụ đồ họa để làm việc với các máy chủ và cơ sở dữ liệu MySQL. MySQL Workbench hỗ trợ đầy đủ phiên bản máy chủ MySQL 5. 6 và cao hơn Chức năng MySQL Workbench bao gồm năm chủ đề chính
Kho lưu trữ mã trên Github là nơi chúng tôi xuất bản ảnh chụp nhanh kho lưu trữ nội bộ của mình mỗi khi xuất bản bản phát hành mới của sản phẩm. Sử dụng hệ thống lỗi MySQL để báo cáo bất kỳ vấn đề nào bạn gặp phải. Bạn có thể sử dụng Github hoặc hệ thống lỗi MySQL để đóng góp cho sự phát triển. Gửi yêu cầu kéo trên Github hoặc sự cố mới trên hệ thống Lỗi MySQL với bản vá của bạn và chúng tôi sẽ xử lý vấn đề đó Giao dịch trong MySQL là một nhóm tuần tự các câu lệnh, truy vấn hoặc thao tác như chọn, chèn, cập nhật hoặc xóa để thực hiện như một đơn vị công việc duy nhất có thể được cam kết hoặc khôi phục. Nếu giao dịch thực hiện nhiều sửa đổi vào cơ sở dữ liệu, có hai điều xảy ra
Nói cách khác, một giao dịch không thể thành công nếu không hoàn thành từng thao tác có sẵn trong tập hợp. Có nghĩa là nếu bất kỳ câu lệnh nào không thành công, thao tác giao dịch không thể tạo ra kết quả Một giao dịch trong MySQL bắt đầu bằng câu lệnh SQL thực thi đầu tiên và kết thúc khi nó tìm thấy một cam kết hoặc được khôi phục rõ ràng hoặc ngầm định. Nó sử dụng rõ ràng câu lệnh COMMIT hoặc ROLLBACK và ngầm định khi sử dụng câu lệnh DDL Hãy để chúng tôi hiểu khái niệm về một giao dịch thông qua giải thích sau đây Chúng ta có thể hiểu khái niệm giao dịch trong MySQL bằng cách xem xét cơ sở dữ liệu ngân hàng. Giả sử một khách hàng của ngân hàng muốn chuyển tiền từ tài khoản này sang tài khoản khác. Chúng ta có thể đạt được điều này bằng cách sử dụng các câu lệnh SQL sẽ được chia thành các bước sau
Thuộc tính của giao dịchGiao dịch chứa chủ yếu bốn thuộc tính, được gọi là thuộc tính ACID. Bây giờ, chúng ta sẽ thảo luận chi tiết về thuộc tính ACID. Thuộc tính ACID là viết tắt của
nguyên tử. Thuộc tính này đảm bảo rằng tất cả các câu lệnh hoặc hoạt động trong đơn vị giao dịch phải được thực hiện thành công. Mặt khác, nếu bất kỳ hoạt động nào không thành công, toàn bộ giao dịch sẽ bị hủy bỏ và nó sẽ quay trở lại trạng thái trước đó. Nó bao gồm các tính năng
Tính nhất quán. Thuộc tính này đảm bảo rằng cơ sở dữ liệu chỉ thay đổi trạng thái khi một giao dịch sẽ được thực hiện thành công. Nó cũng chịu trách nhiệm bảo vệ dữ liệu khỏi sự cố. Nó bao gồm các tính năng
Sự cô lập. Tính chất này đảm bảo từng nghiệp vụ trong đơn vị giao dịch hoạt động độc lập. Nó cũng đảm bảo rằng các câu lệnh minh bạch với nhau. Nó bao gồm các tính năng
Độ bền. Thuộc tính này đảm bảo rằng kết quả của các giao dịch đã cam kết sẽ tồn tại vĩnh viễn ngay cả khi hệ thống gặp sự cố hoặc lỗi. Nó bao gồm các tính năng
Tuyên bố giao dịch MySQLCác giao dịch kiểm soát MySQL với sự trợ giúp của câu lệnh sau
Một lần nữa, sử dụng câu lệnh dưới đây để bật chế độ tự động cam kết Ví dụ giao dịch MySQLGiả sử chúng ta có hai bảng tên là "nhân viên" và "Đơn hàng" chứa dữ liệu sau Cái bàn. người lao động Cái bàn. mệnh lệnh CAM KẾT Ví dụNếu chúng ta muốn sử dụng một giao dịch, bắt buộc phải chia các câu lệnh SQL thành các phần hợp lý. Sau đó, chúng tôi có thể xác định xem dữ liệu sẽ được cam kết hay khôi phục Các bước sau đây minh họa để tạo một giao dịch
Dưới đây là các lệnh thực hiện các thao tác trên Hình ảnh dưới đây giải thích nó rõ ràng hơn Ví dụ về QUAY LẠIChúng ta có thể hiểu giao dịch quay lui với sự trợ giúp của hình minh họa sau. Đầu tiên, mở dấu nhắc lệnh MySQL và đăng nhập vào máy chủ cơ sở dữ liệu bằng mật khẩu. Tiếp theo, chúng ta phải chọn một cơ sở dữ liệu Giả sử cơ sở dữ liệu của chúng tôi chứa bảng "Đơn hàng". Bây giờ, sau đây là các tập lệnh thực hiện các thao tác khôi phục Sau khi thực hiện câu lệnh trên, chúng ta sẽ nhận được kết quả như bên dưới hiển thị tất cả các bản ghi từ bảng Đơn đặt hàng đã được xóa thành công Bây giờ, chúng ta cần mở một phiên riêng của máy chủ cơ sở dữ liệu MySQL và thực hiện câu lệnh bên dưới để xác minh dữ liệu trong bảng Đơn hàng Nó sẽ cho đầu ra như dưới đây Mặc dù chúng tôi đã thực hiện các thay đổi trong phiên đầu tiên, chúng tôi vẫn có thể thấy các bản ghi có sẵn trong bảng. Đó là bởi vì các thay đổi không phải là vĩnh viễn cho đến khi chúng ta chưa thực hiện câu lệnh COMMIT hoặc ROLLBACK trong phiên đầu tiên Do đó, nếu chúng ta muốn thay đổi vĩnh viễn, hãy sử dụng câu lệnh COMMIT. Nếu không, hãy thực thi câu lệnh ROLLBACK để khôi phục các thay đổi trong phiên đầu tiên Sau khi thực hiện thành công, nó sẽ tạo ra kết quả sau, nơi chúng ta có thể thấy rằng thay đổi đã được khôi phục Các câu lệnh không thể khôi phục khi sử dụng Giao dịch MySQL Giao dịch MySQL không thể khôi phục tất cả các câu lệnh. Ví dụ: các câu lệnh này bao gồm các lệnh DDL (Ngôn ngữ Định nghĩa Dữ liệu) chẳng hạn như cơ sở dữ liệu CREATE, ALTER hoặc DROP cũng như các bảng CREATE, UPDATE hoặc DROP hoặc các quy trình được lưu trữ. Chúng tôi phải đảm bảo rằng khi chúng tôi thiết kế giao dịch của mình, những tuyên bố này không bao gồm SAVEPOINT, QUAY LẠI VỀ SAVEPOINT, PHÁT HÀNH SAVEPOINTCâu lệnh SAVEPOINT tạo một dấu đặc biệt với tên của mã định danh bên trong một giao dịch. Nó cho phép tất cả các câu lệnh được thực thi sau điểm lưu trữ sẽ được khôi phục. Vì vậy, giao dịch khôi phục về trạng thái trước đó tại điểm lưu trữ. Nếu chúng tôi đã đặt nhiều điểm lưu trữ trong giao dịch hiện tại có cùng tên, thì điểm lưu trữ mới chịu trách nhiệm khôi phục Câu lệnh ROLLBACK TO SAVEPOINT cho phép chúng tôi khôi phục tất cả các giao dịch về điểm lưu trữ đã cho đã được thiết lập mà không hủy bỏ giao dịch Câu lệnh RELEASE SAVEPOINT phá hủy điểm lưu trữ đã đặt tên khỏi giao dịch hiện tại mà không hoàn tác tác động của các truy vấn được thực hiện sau khi điểm lưu trữ được thiết lập. Sau những câu lệnh này, không có lệnh rollback nào xảy ra. Nếu điểm lưu trữ không tồn tại trong giao dịch, nó sẽ báo lỗi Sau đây là cú pháp của các câu lệnh trên trong Giao dịch MySQL Ví dụHãy cho chúng tôi hiểu cách sử dụng các câu lệnh này thông qua ví dụ. Trong ví dụ dưới đây, chúng ta sẽ sử dụng các câu lệnh SAVEPOINT và ROLLBACK TO SAVEPOINT để giải thích cách một điểm lưu trữ xác định bản ghi nào của giao dịch hiện tại có thể được khôi phục Ở trên,
Đầu ra bên dưới giải thích các bước trên theo thứ tự tuần tự giúp hiểu nó rất dễ dàng Bây giờ, chúng ta sẽ sử dụng câu lệnh SELECT để xác minh thao tác trên. Ở đầu ra, chúng ta có thể thấy rằng tất cả các câu lệnh trong giao dịch được thực hiện thành công. Ở đây, cả câu lệnh INSERT và UPDATE đều sửa đổi bảng tại COMMIT Làm cách nào để CAM KẾT mã trong MySQL Workbench?Báo cáo giao dịch MySQL . Để bắt đầu giao dịch, bạn sử dụng câu lệnh BẮT ĐẦU GIAO DỊCH. . Để cam kết giao dịch hiện tại và thực hiện các thay đổi của nó vĩnh viễn, bạn sử dụng câu lệnh COMMIT Để khôi phục giao dịch hiện tại và hủy các thay đổi của nó, bạn sử dụng câu lệnh ROLLBACK Làm cách nào để CAM KẾT trong cơ sở dữ liệu MySQL?MySQL cung cấp câu lệnh BẮT ĐẦU GIAO DỊCH để bắt đầu giao dịch. Nó cũng cung cấp "BEGIN" và "BEGIN WORK" làm bí danh của BẮT ĐẦU GIAO DỊCH. Chúng tôi sẽ sử dụng câu lệnh COMMIT để thực hiện giao dịch hiện tại. . SET autocommit = 1; SET autocommit = ON Có CAM KẾT trong MySQL không?Theo mặc định, MySQL bắt đầu phiên cho mỗi kết nối mới có bật tự động cam kết, vì vậy MySQL thực hiện cam kết sau mỗi câu lệnh SQL nếu câu lệnh đó không trả về lỗi. If a statement returns an error, the commit or rollback behavior depends on the error.
Làm cách nào để đặt tự động cam kết trong MySQL?Để sử dụng giao dịch nhiều câu lệnh, hãy tắt tự động cam kết bằng câu lệnh SQL SET autocommit = 0 và kết thúc mỗi giao dịch bằng CAM KẾT hoặc ROLLBACK nếu thích hợp. Để bật tính năng tự động cam kết, hãy bắt đầu từng giao dịch bằng BẮT ĐẦU GIAO DỊCH và kết thúc giao dịch đó bằng CAM KẾT hoặc QUAY LẠI . |