PB事務處理

2021-04-13 07:59:40 字數 1074 閱讀 4751

1、 資料視窗更新,只要dberror有錯誤,而事先沒有做過任何commit工作,那麼rollback可以回滾到上次commit位置,即上次commit後所有的資料將被回滾。

2、 如果是直接寫入sql語句,只要資料庫出現錯誤,那麼rollback可以回滾到上次commit的位置,即上次commit後所有的資料將被回滾。

3、 在乙個應用開啟之前有任何未commit的資料,都將會導致對這個表的任何操作出現資源爭用的現象,即假死狀態。

4、 對錶的資源假死現象不會出現在任何查詢語句中,即使查詢語句未做提交工作。所以在查詢語句中最好不要使用commit。

5、 回滾/提交資料不能隨意使用,回滾/提交是以為時間序列為標準的,本次回滾或者提交會影響所有資料(上次提交/回滾到本次提交/回滾之間的所有資料)。

6、 視窗的時間性:reponse!視窗會等待,而其他不會等待。所以response!視窗中做提交,會影響該視窗彈出之前的資料;而其他視窗則可能不會影響到主視窗的資料(因為時間不等待,直接往下執行,但也有例外)。

7、 更新應該具有即時性,不要在資料還沒有準備更新的時候,做一些查詢/更新操作,這樣會導致假死(多使用者時),所以更新、插入操作應該是越接近commit,rollback越好。

update ….;

insert …

if flag then

commit

else

rollback;

end if

8、 複查的查詢操作不要放到update,insert之間,這樣會增加假死的機會。

不好的做法

下面的寫法在多使用者的情況下假死增加:

update b1 set bb=;

。。。。

select ff into :ll_dd from b2;

dw_1.retrieve()

commit;

好的做法:儘量減少假死現象

select ff into :ll_dd from b2;

dw_1.retrieve()

。。。。

update b1 set bb=;

commit;  

MySQL事務處理

start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...

ASP事務處理

asp事務處理。測試資料庫為sql server,伺服器為本機,資料庫名為test,表名為a,兩個欄位id int 主鍵標識,num int set conn server.createobject adodb.connection strconn provider sqloledb.1 persi...

mysql事務處理

mysql的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin開始乙個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過 set ...