PG 事務提交與回滾

            在PostgreSQL中,如果執行一個dml或ddl語句,默認一執行完就馬上提交了,不能回滾,這樣容易導致誤操作的發生,避免這個風險的辦法是關閉自動提交

1  設置\set AUTOCOMMIT off (ddl語句這裏設置了之後一樣會回滾,記住這裏AUTOCOMMIT是大寫)
2  閃回點策略,如下:

  begin;     -----這裏的作用等同於\set AUTOCOMMIT off

  insert into tb01 values(1);

    savepoint sp1;

    insert into tb01 values(2);

    savepoint sp2;

    insert into tb01 values(3);

    如果直接執行 1)rollback(體現了事務的原子性,要麼全回滾,要麼全提交,即begin;開始的地方),那麼所有數據都回滾 2)如果rollback to savepoint to sp1,那麼此時則回滾點SP2則自動消失。 3)如果先回滾到SP2,那麼可以繼續回滾到SP1

回滾點可以運用於大事務切割,避免出錯,所有操作都回滾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章