Rollback Multipernyataan
Sekarang mari gunakan beberapa pernyataan dalam sebuah transaksi untuk menetapkan penanda pada FIELD48 berdasarkan apakah kolom tersebut memuat aset pemerintah negara bagian AS yang direpresentasikan di RCON2203, aset luar negeri yang direpresentasikan di RCON2236, atau keduanya. Nilai untuk FIELD48 masing-masing harus 'US-STATE-GOV', 'FOREIGN', atau 'BOTH'. Namun, Anda membuat kesalahan pada pernyataan untuk kondisi keduanya.
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Error di PostgreSQL
Petunjuk latihan
- Buat 3 pernyataan UPDATE untuk mendeteksi setiap kondisi dan menetapkan penanda.
- Urungkan kesalahan menetapkan nilai
'BOOTH'alih-alih'BOTH'dengan melakukan rollback transaksi. - Pilih hitungan record saat penanda bernilai
'BOOTH'.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- 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';