?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
RELEASE [ SAVEPOINT ] savepoint_name
RELEASE SAVEPOINT刪除一個(gè)當(dāng)前事務(wù)先前定義的保存點(diǎn)。
把一個(gè)保存點(diǎn)刪除就令其無法作為回滾點(diǎn)使用,除此之外它沒有其它用戶可見的行為。 它并不能撤銷在保存點(diǎn)建立起來之后執(zhí)行的命令的影響。 要撤銷那些命令可以使用ROLLBACK TO SAVEPOINT。 在不再需要的時(shí)候刪除一個(gè)保存點(diǎn)可以令系統(tǒng)在事務(wù)結(jié)束之前提前回收一些資源。
RELEASE SAVEPOINT也刪除所有在指定的保存點(diǎn)建立之后的所有保存點(diǎn)。
要?jiǎng)h除的保存點(diǎn)的名字
聲明一個(gè)以前沒有定義的保存點(diǎn)名字將導(dǎo)致錯(cuò)誤。
如果事務(wù)在回滾狀態(tài),則不能釋放保存點(diǎn)。
如果多個(gè)保存點(diǎn)擁有同樣的名字,只有最近定義的那個(gè)才被釋放。
建立并稍后刪除一個(gè)保存點(diǎn):
BEGIN; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT;
上面的事務(wù)將同時(shí)插入3和4 。
這條命令遵循SQL標(biāo)準(zhǔn)。標(biāo)準(zhǔn)規(guī)定關(guān)鍵字SAVEPOINT是必須的。 但PostgreSQL允許省略它。