Bắt đầu ngayBắt đầu miễn phí

Rollback với savepoint

Tiếp nối bài tập trước: các ngân hàng có hơn 6 triệu đô trong MMDA có khả năng trụ vững gấp đôi trong suy thoái so với nhóm có từ 5 đến 6 triệu đô ở cùng loại tài sản. Ở đây mã mẫu có một lỗi và bạn cần rollback về savepoint để giữ tính toàn vẹn dữ liệu.

Bài tập này là một phần của khóa học

Giao dịch và Xử lý Lỗi trong PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Trong một giao dịch, đặt FIELD48 thành 'MMDA+' khi RCON6810 (số tiền MMDA) lớn hơn 6 triệu đô.
  • Đặt mmdaplus_flag_set làm savepoint.
  • Đặt FIELD48 thành 'MMDA+' khi RCON6810 (số tiền MMDA) lớn hơn 5 triệu đô (đây là lỗi).
  • Hoàn tác về mmdaplus_flag_set, kết thúc giao dịch, và đếm số bản ghi 'MMDA+'.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

BEGIN;

-- Set the flag to MMDA+ where the value is greater than $6 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where RCON6810 > 6000000;

-- Set a Savepoint
___ mmdaplus_flag_set;

-- Mistakenly set the flag to MMDA+ where the value is greater than $5 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where ___ > 5000000;

-- Rollback to savepoint
___ TO ___;

COMMIT;

-- Select count of records where the flag is MMDA+
SELECT count(FIELD48) from ffiec_reci where FIELD48 = 'MMDA+';
Chỉnh sửa và Chạy Mã