Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Sử dụng Transactions trong PostgreSQL - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Deprecated: Implicit conversion from float 19.6 to int loses precision in /var/www/vinascript/html/wp-content/plugins/internal-links/core/links/text-to-link-converter-factory.php on line 36

Trong PostgreSQL, một giao dịch, còn được gọi là transaction, là một phiên làm việc đặc biệt. Trong giao dịch, nhiều câu lệnh SQL có thể được thực hiện đồng thời. Tuy nhiên, nếu có bất kỳ vấn đề hoặc lỗi nào xảy ra trong quá trình thực hiện giao dịch, bạn có thể sử dụng lệnh ROLLBACK để hủy bỏ tất cả các thay đổi đã được thực hiện trong giao dịch đó. Kết quả là, dữ liệu trong cơ sở dữ liệu không bị ảnh hưởng hoặc thay đổi.

Transaction đảm bảo tính toàn vẹn của dữ liệu bằng cách đảm bảo rằng hoặc tất cả các thay đổi trong giao dịch đều được áp dụng thành công hoặc không có thay đổi nào được áp dụng. Điều này giúp đảm bảo rằng dữ liệu luôn ở trạng thái đáng tin cậy và nhất quán.

Các lệnh trong PostgreSQL Transactions

Các lệnh sau được sử dụng để kiểm soát các giao dịch –

  • BEGIN TRANSACTION – Để bắt đầu một Transaction
  • COMMIT – Để lưu các thay đổi vào database, hoặc bạn có thể sử dụng lệnh END TRANSACTION.
  • ROLLBACK – Hủy transaction và không thay đổi dữ liệu trong database.

Transaction chỉ được sử dụng với các lệnh DML là: INSERT, UPDATE, DELETE.

Sử dụng PostgreSQL Transaction

Để bắt đầu một transaction sử dụng lệnh:

BEGIN TRANSACTION;
-- Hoặc
BEGIN:

Để hoàn thành một transaction sử dụng lệnh:

COMMIT;
-- Hoặc
END TRANSACTION;

Để hủy một transaction

ROLLBACK;

VD 1: Ta có bảng users như sau

Thêm dữ liệu cho bảng và commit dữ liệu:

BEGIN TRANSACTION;
INSERT INTO public.users(user_id, group_id, username, password, email)
VALUES 
(5, 1, 'HieuDT', '123456', 'hieudt@gmail.com'),
(6, 1, 'PhatML', '123456', 'phatml@gmail.com'),
(7, 1, 'Myttt', '123456', 'myttt@gmail.com');
COMMIT;

BEGIN TRANSACTION;
INSERT INTO public.users(user_id, group_id, username, password, email, created_at)
VALUES 
(8, 1, 'HangNT', '123456', 'hangnt@gmail.com', '2019-12-14 00:00:05');
ROLLBACK;

Kết quả dữ liệu của bảng users sau khi sử dụng Transaction

Nếu gặp lỗi:

ERROR: current transaction is aborted, commands ignored until end of transaction block

Câu lệnh SQL bị lỗi và giao dịch đang trong trạng thái không hoàn thành. Sử dụng lệnh ROLLBACK để hủy bỏ giao dịch hiện tại.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *