เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Rollback หลายคำสั่งพร้อมกัน

คราวนี้มาลองใช้หลายคำสั่งในบล็อก transaction เพื่อตั้งค่าแฟล็กใน FIELD48 โดยอ้างอิงจากประเภทสินทรัพย์ที่ถืออยู่ ได้แก่ สินทรัพย์รัฐบาลระดับรัฐของสหรัฐฯ ที่แสดงใน RCON2203, สินทรัพย์ต่างประเทศที่แสดงใน RCON2236, หรือทั้งสองอย่าง โดยค่าของ FIELD48 ควรเป็น 'US-STATE-GOV', 'FOREIGN', หรือ 'BOTH' ตามลำดับ แต่มีข้อผิดพลาดเกิดขึ้นในคำสั่งสำหรับกรณีทั้งสอง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Transactions and Error Handling in PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างคำสั่ง UPDATE 3 คำสั่งเพื่อตรวจจับแต่ละเงื่อนไขและตั้งค่าแฟล็กให้ถูกต้อง
  • แก้ไขข้อผิดพลาดที่ตั้งค่าเป็น 'BOOTH' แทนที่จะเป็น 'BOTH' โดยการ rollback transaction
  • Select จำนวนระเบียนที่มีแฟล็กถูกตั้งค่าเป็น 'BOOTH'

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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';
แก้ไขและรันโค้ด