oracle中的truncate語句

2021-08-27 02:43:01 字數 324 閱讀 7019

最近在專案中碰到個問題,更新過期資料時事務沒有回滾。前前後後仔細檢查了一遍事務配置,始終沒有找出問題所在。最後經過單步除錯,總算找到了問題根源:使用truncate刪除資料,導致事務被提交。

1、在oracle中刪除資料後還能回滾是因為資料被放在了undo表空間。

2、dml = data manipulation language,資料操縱語言,使用undo表空間;

ddl = data definition language,資料定義語言,不使用undo表空間。

delete是dml語句,truncate是ddl語句,ddl語句隱式提交,即使當前事務出錯,也無法回滾。

mysql中delete與truncate的區別

語法 delete from 表名 where conditions conditions為篩選條件,如果沒有,預設刪除全部資料 用於清空表資料,但表結構,索引,約束不變 語法 truncate table table name 結論 delete刪除全部資料後,自增值會在當前值的基礎上繼續遞增,會...

mysql中delete和truncate區別

delete和truncate區別如下 一 靈活性 delete可以條件刪除資料,而truncate只能刪除表的所有資料 delete from table test where truncate table table test 二 效率 delete效率低於truncate,delete是一行一...

oracle中的角色

oracle 中的角色 一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就 是 角色。角色是一組許可權的集合,將角...