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

Hoàn tác nhiều câu lệnh (Multistatement Rollbacks)

Bây giờ hãy dùng nhiều câu lệnh trong một giao dịch để đặt cờ trong FIELD48 dựa trên việc nó nắm giữ tài sản của chính quyền bang Mỹ thể hiện ở RCON2203, tài sản nước ngoài thể hiện ở RCON2236, hoặc cả hai. Giá trị cho FIELD48 lần lượt phải là 'US-STATE-GOV', 'FOREIGN', hoặc 'BOTH'. Tuy nhiên, bạn đã mắc lỗi trong câu lệnh cho trường hợp cả hai.

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

  • Tạo 3 câu lệnh UPDATE để phát hiện từng điều kiện và đặt cờ.
  • Hoàn tác lỗi đặt 'BOOTH' thay vì 'BOTH' bằng cách ROLLBACK giao dịch.
  • Chọn số lượng bản ghi nơi cờ được đặt thành 'BOOTH'.

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 a new transaction
BEGIN;

-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;

-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;

-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;

-- Undo the mistake
___; 

-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';
Chỉnh sửa và Chạy Mã