Savepoint หลายจุดและการ Rollback

Transactions and Error Handling in PostgreSQL

Jason Myers

Principal Engineer

Savepoint หลายจุด

BEGIN TRANSACTION;

UPDATE inventory SET quantity = quantity - 1 WHERE name in ('flour', 'sugar');

SAVEPOINT inventory_step;

INSERT baking_list SET quantity=12 WHERE name='Torun';

SAVEPOINT queuing_step;

UPDATE cookies SET quantity = 12 WHERE name = 'Torun';
Transactions and Error Handling in PostgreSQL

การตั้งชื่อ Savepoint ซ้ำ

  • SAVEPOINT ใหม่ที่ใช้ชื่อเดียวกับจุดก่อนหน้าในทรานแซกชันเดียวกันจะ "บัง" จุดเดิมไว้ ไม่ใช่เขียนทับหรือลบออก!
  • ควรหลีกเลี่ยงการใช้ชื่อซ้ำภายในทรานแซกชันเดียวกัน
Transactions and Error Handling in PostgreSQL

ตัวอย่างการตั้งชื่อ Savepoint ซ้ำ

BEGIN TRANSACTION;

UPDATE inventory SET quantity = quantity - 1 WHERE name in ('flour', 'sugar');

SAVEPOINT oops;

INSERT baking_list SET quantity=12 WHERE name='Torun';

SAVEPOINT oops;

UPDATE cookies SET quantity = 12 WHERE name = 'Torun';
Transactions and Error Handling in PostgreSQL

มาฝึกกันเถอะ!

Transactions and Error Handling in PostgreSQL

Preparing Video For Download...