1. Trang chủ
  2. » Thể loại khác

transaction trong sqlite

3 81 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 165,39 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Transaction trong SQLite Transaction trong SQLite là một đơn vị công việc được thực hiện bởi một Database.. Transaction là đơn vị hoặc dãy công việc được thực hiện theo một thứ tự logic

Trang 1

Transaction trong SQLite

Transaction trong SQLite là một đơn vị công việc được thực hiện bởi một Database Transaction là đơn vị hoặc dãy công việc được thực hiện theo một thứ tự logic và hợp lý,

có thể được thao tác bởi người dùng hoặc bởi một Database program

Một transaction là một sự lan truyền của một hoặc nhiều thay đổi tới Database Ví dụ, nếu bạn đang tạo một bản ghi hoặc cập nhật một bản ghi hoặc xóa một bản ghi từ một bảng, thì bạn đang thực hiện transaction trên bảng đó Nó là quan trọng để điều khiển các transaction để bảo đảm toàn vẹn dữ liệu và để xử lý các Database Error

Thực tế, bạn sẽ tập hợp nhiều truy vấn SQLite vào trong một nhóm và sẽ thực thi tất cả truy vấn này cùng với nhau như là một phần của một transaction

Property của Transaction trong SQLite

Transaction có 4 property chuẩn, thường được tham chiếu bởi tên lược danh là ACID:

Atomicity: bảo đảm rằng tất cả hoạt động bên trong đơn vị công việc được hoàn

thành một cách thành công; nếu không, transaction bị ngừng ở điểm thất bại, và các hoạt động trước được trao trả về trạng thái trước đó

Consistency: bảo đảm rằng Database thay đổi một cách chính xác trạng thái theo

một transaction đã được ký thác thành công

Isolation: cho các transaction khả năng hoạt động một cách độc lập và không liên

quan đến nhau

Durability: bảo đảm rằng kết quả hoặc tác động của một transaction, mà đã được

ký thác, vẫn còn tồn tại trong trường hợp hệ thống thất bại

Điều khiển Transaction trong SQLite

Trong SQLite, có các lệnh sau được sử dụng để điều khiển transaction:

BEGIN TRANSACTION: Để bắt đầu một Transaction

COMMIT: để lưu thay đổi, bạn thể sử dụng lệnh END TRANSACTION để thay thế

ROLLBACK: để quay trở lại trạng thái trước khi có thay đổi

Trang 2

Các lệnh điều khiển transaction chỉ được sử dụng với các lệnh INSERT, UPDATE và DELETE Chúng không thể được sử dụng trong khi tạo và xóa bảng, bởi vì những hoạt động này được ký thác tự động trong Database

Lệnh BEGIN TRANSACTION trong SQLite

Các Transaction có thể được bắt đầu bởi sử dụng lệnh BEGIN TRANSACTION hoặc để đơn giản bạn sử dụng BEGIN Những Transaction này thường tồn tại tới khi gặp các lệnh COMMIT hoặc ROLLBACK tiếp theo Nhưng một Transaction sẽ vẫn ROLLBACK nếu cơ

sở dữ liệu bị đóng hoặc nếu xuất hiện một lỗi Sau đây là cú pháp cơ bản để khởi đầu một Transaction:

BEGIN ; or BEGIN TRANSACTION ;

Lệnh COMMIT trong SQLite

Lệnh COMMIT là lệnh điều khiển transaction được sử dụng để lưu các thay đổi đã được triệu hồi bởi một transaction tới Database

Lệnh COMMIT lưu giữ tất cả transaction trong Database từ lệnh COMMIT hoặc ROLLBACK cuối cùng

Cú pháp cơ bản của lệnh COMMIT là như sau:

COMMIT ; or END TRANSACTION ;

Lệnh ROLLBACK trong SQLite

Lệnh ROLLBACK là lệnh điều khiển transaction được sử dụng để trao trả transaction về trạng thái trước khi có các thay đổi mà chưa được lưu tới Database

Lệnh ROLLBACK chỉ có thể được sử dụng để undo các transaction từ lệnh COMMIT hoặc ROLLBACK cuối cùng được thông báo

Cú pháp cơ bản của lệnh ROLLBACK như sau:

ROLLBACK ;

Ví dụ

Bạn theo dõi bảng COMPANY có các bản ghi sau:

Trang 3

ID NAME AGE ADDRESS SALARY - -

- - - Paul 32

California 20000.0 Allen 25 Texas 15000.0

Teddy 23 Norway 20000.0 Mark 25

Rich - Mond 65000.0 David 27 Texas 85000.0

Kim 22 South - Hall 45000.0 James 24

Houston 10000.0 Bây giờ, bắt đầu một Transaction và xóa các bản ghi từ bảng có age = 25 và sau đó sử dụng lệnh ROLLBACK để undo lại tất cả các thay đổi sqlite > BEGIN ; sqlite > DELETE FROM COMPANY WHERE AGE = 25; sqlite > ROLLBACK ; Nếu bạn kiểm tra bảng COMPANY, thì bạn sẽ vẫn thấy các bản ghi sau: ID NAME AGE ADDRESS SALARY - -

- - - Paul 32

California 20000.0 Allen 25 Texas 15000.0

Teddy 23 Norway 20000.0 Mark 25

Rich - Mond 65000.0 David 27 Texas 85000.0

Kim 22 South - Hall 45000.0 James 24

Houston 10000.0 Bây giờ, bắt đầu một Transaction khác và xóa các bản ghi từ bảng có age = 25, và cuối cùng sử dụng lệnh COMMIT để ký thác tất cả thay đổi sqlite > BEGIN ; sqlite > DELETE FROM COMPANY WHERE AGE = 25; sqlite > COMMIT ; Nếu bạn kiểm tra bảng COMPANY lần nữa, bạn sẽ thấy các bản ghi sau: ID NAME AGE ADDRESS SALARY - -

- - - Paul 32

California 20000.0 Teddy 23 Norway 20000.0

David 27 Texas 85000.0 Kim 22

South - Hall 45000.0 James 24 Houston 10000.0

Ngày đăng: 02/12/2017, 11:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN