Çoklu ifadelerde Rollback
Şimdi bir işlem içinde birden çok ifade kullanarak, RCON2203'te temsil edilen ABD eyalet hükümeti varlıklarını, RCON2236'da temsil edilen yabancı varlıkları veya her ikisini birden tutmasına göre FIELD48 içinde bir işaret (flag) ayarlayalım. FIELD48 için değerler sırasıyla 'US-STATE-GOV', 'FOREIGN' veya 'BOTH' olmalı. Ancak, her ikisi için yazdığın ifadede bir hata yaptın.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
- Her koşulu tespit edip bayrağı ayarlayacak 3 UPDATE ifadesi yaz.
- İşlemi geri alarak
'BOTH'yerine yanlışlıkla'BOOTH'olarak ayarlama hatasını düzelt. - Bayrağın
'BOOTH'olarak ayarlandığı kayıtların sayısını seç.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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';