cuốn sách gpt4 ai đã làm

23. Giao dịch SQLite

In lại Tác giả: Đường đến ông chủ Thời gian cập nhật: 2024-01-07 13:06:11 29 4
mua khóa gpt4 Nike

Giao dịch SQLite

Giao dịch là một đơn vị công việc được thực hiện trên cơ sở dữ liệu. Giao dịch là một đơn vị hoặc chuỗi công việc được hoàn thành theo trình tự logic. Nó có thể được người dùng hoàn thành theo cách thủ công hoặc tự động bởi một số chương trình cơ sở dữ liệu.

Giao dịch là một hoặc nhiều phần mở rộng làm thay đổi cơ sở dữ liệu. Ví dụ: nếu bạn đang tạo một bản ghi hoặc cập nhật bản ghi hoặc xóa bản ghi khỏi bảng, bạn đang thực hiện một giao dịch trên bảng. Điều quan trọng là kiểm soát các giao dịch để đảm bảo tính toàn vẹn dữ liệu và xử lý các lỗi cơ sở dữ liệu.

Trên thực tế, bạn có thể kết hợp nhiều truy vấn SQLite thành một nhóm và thực hiện tất cả chúng cùng nhau như một phần của giao dịch.

Thuộc tính giao dịch

Giao dịch có bốn thuộc tính tiêu chuẩn sau, thường được gọi là ACID theo từ viết tắt:

  • Tính nguyên tử: Đảm bảo rằng tất cả các hoạt động trong một đơn vị công việc đều hoàn thành thành công, nếu không thì giao dịch sẽ bị chấm dứt trong trường hợp xảy ra lỗi và các hoạt động trước đó sẽ được khôi phục về trạng thái trước đó.
  • **Tính nhất quán:** Đảm bảo rằng cơ sở dữ liệu thay đổi trạng thái chính xác trên các giao dịch được thực hiện thành công.
  • **Cách ly:** Làm cho các hoạt động giao dịch trở nên độc lập và minh bạch với nhau.
  • **Durability (Độ bền): **Đảm bảo rằng kết quả hoặc ảnh hưởng của các giao dịch đã cam kết vẫn tồn tại trong trường hợp hệ thống bị lỗi.

kiểm soát giao dịch

Sử dụng các lệnh sau để kiểm soát giao dịch:

  • BẮT ĐẦU GIAO DỊCH: Bắt đầu xử lý giao dịch.
  • LÀM: Lưu các thay đổi hoặc bạn có thể sử dụng KẾT THÚC GIAO DỊCH Đặt hàng.
  • HOÀN LẠI: Khôi phục các thay đổi đã thực hiện.

Các lệnh kiểm soát giao dịch chỉ được sử dụng với các lệnh DML INSERT, UPDATE và DELETE. Chúng không thể được sử dụng khi tạo bảng hoặc xóa bảng vì các thao tác này được tự động thực hiện trong cơ sở dữ liệu.

Lệnh BẮT ĐẦU GIAO DỊCH

Giao dịch có thể được bắt đầu bằng lệnh BEGIN TRANSACTION hoặc lệnh BEGIN đơn giản. Các giao dịch như vậy thường tiếp tục cho đến khi gặp lệnh COMMIT hoặc ROLLBACK tiếp theo. Tuy nhiên, giao dịch cũng sẽ bị roll back khi cơ sở dữ liệu bị đóng hoặc xảy ra lỗi. Sau đây là cú pháp đơn giản để bắt đầu một giao dịch:

BẮT ĐẦU hoặc BẮT ĐẦU GIAO DỊCH;

Lệnh CAM KẾT

Lệnh COMMIT là lệnh giao dịch được sử dụng để lưu các thay đổi được gọi bởi giao dịch vào cơ sở dữ liệu.

Lệnh COMMIT lưu vào cơ sở dữ liệu tất cả các giao dịch kể từ lệnh COMMIT hoặc ROLLBACK cuối cùng.

Cú pháp của lệnh COMMIT như sau:

CAM KẾT hoặc KẾT THÚC GIAO DỊCH;

Lệnh ROLLBACK

Lệnh ROLLBACK là lệnh giao dịch dùng để hoàn tác các giao dịch chưa được lưu vào cơ sở dữ liệu.

Lệnh ROLLBACK chỉ có thể được sử dụng để hoàn tác các giao dịch kể từ lần cuối cùng lệnh COMMIT hoặc ROLLBACK được ban hành.

Cú pháp của lệnh ROLLBACK như sau:

HOÀN LẠI;

Ví dụ

Giả sử bảng COMPANY có các bản ghi sau:

CMND TÊN TUỔI ĐỊA CHỈ LƯƠNG ---------- ---------- ---------- ---------- ----- ----- 1 Paul 32 California 20000,0 2 Allen 25 Texas 15000,0 3 Teddy 23 Na Uy 20000,0 4 Mark 25 Rich-Mond 65000,0 5 David 27 Texas 85000,0 6 Kim 22 South-Hall 45000,0 7 James 24 Houston 10000,0

Bây giờ, chúng ta hãy bắt đầu một giao dịch và xóa bản ghi có age = 25 khỏi bảng. Cuối cùng, chúng ta sử dụng lệnh ROLLBACK để hoàn tác tất cả các thay đổi.

sqlite> BẮT ĐẦU; sqlite> XÓA TỪ CÔNG TY Ở ĐÂU TUỔI = 25; sqlite> ROLLBACK;

Kiểm tra bảng COMPANY vẫn còn các bản ghi sau:

CMND TÊN TUỔI ĐỊA CHỈ LƯƠNG ---------- ---------- ---------- ---------- ----- ----- 1 Paul 32 California 20000,0 2 Allen 25 Texas 15000,0 3 Teddy 23 Na Uy 20000,0 4 Mark 25 Rich-Mond 65000,0 5 David 27 Texas 85000,0 6 Kim 22 South-Hall 45000,0 7 James 24 Houston 10000,0

Bây giờ, chúng ta hãy bắt đầu một giao dịch khác để xóa bản ghi có age = 25 khỏi bảng và cuối cùng chúng ta thực hiện tất cả các thay đổi bằng lệnh COMMIT.

sqlite> BẮT ĐẦU; sqlite> XÓA TỪ CÔNG TY Ở ĐÂU TUỔI = 25;

Kiểm tra bảng COMPANY, có các bản ghi sau:

CMND TÊN TUỔI ĐỊA CHỈ LƯƠNG ---------- ---------- ---------- ---------- ----- ----- 1 Paul 32 California 20000,0 3 Teddy 23 Na Uy 20000,0 5 David 27 Texas 85000,0 6 Kim 22 South-Hall 45000,0 7 James 24 Houston 10000,0
29 4 0
Bài viết khuyến nghị: 02. Giới thiệu về SQLite
Bài viết khuyến nghị: 05. Mệnh đề SQLite Glob
Bài viết khuyến nghị: 08. Nhóm SQLite theo
Bài viết khuyến nghị: 26. Tiêm SQLite
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress