PostgreSQL alt işlemleri desteklemez, ancak SAVEPOINT
özellik etkin bir şekilde ihtiyaçlarınıza cevap verebilir. Belgelerine alıntı sözlere aracılığıyla PG Gelişmiş erişim katmanında tarafından Vitaly Tomilov GitHub'dan:
PostgreSQL'in iç içe geçmiş işlemler için uygun desteği yoktur, yalnızca işlemler içindeki kayıt noktaları aracılığıyla kısmi geri dönüşleri destekler . İki teknik arasındaki fark, daha fazla açıklandığı gibi, çok büyüktür.
Yuvalanmış işlemler için uygun destek, üst işlem geri alındığında başarılı bir alt işlemin sonucunun geri alınmayacağı anlamına gelir. Ancak PostgreSQL kayıt noktalarında, üst düzey işlemi geri alırsanız, tüm iç kayıt noktalarının sonucu da geri alınır.
Kaydetme noktaları, etkin bir işlemin önceki bir noktasına kısmi geri almalar için kullanılabilir. Örneğin, bir kayıt noktası oluşturmak ve daha sonra, kurulduktan sonra yürütülen tüm komutların etkilerini geri almak için:
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;
Yukarıdaki işlem 1 ve 3 değerlerini ekler, ancak 2 değerini girmez. Daha SAVEPOINT
fazla bilgi için belgelere bakın .