truncate table
刪除表中的所有行,而不記錄單個行刪除操作。
語法
truncate table name
引數
name
是要截斷的表的名稱或要刪除其全部行的表的名稱。
注釋
truncate table 在功能上與不帶 where 子句的 delete 語句相同:二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。
delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate table 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放。
truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 delete。如果要刪除表定義及其資料,請使用 drop table 語句。
對於由 foreign key 約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。
由於 truncate table 不記錄在日誌中,所以它不能啟用觸發器。
truncate table 不能用於參與了索引檢視的表。
示例
下例刪除 authors 表中的所有資料。
truncate table authors
如何匯出Oracle乙個使用者中所有表的表結構
一 exp userid bx81 bx81 owner bx81 imp userid bx81 bx81 full y indexfile bx8.sql 注意著時imp並沒有真正寫入資料庫,而是將ddl寫在bx8.sql裡。二 用下面的指令碼可以生成某個使用者下的表的ddl語句 set arr...
SQL 統計乙個資料庫中所有表記錄的數量
最近公司的資料庫發現有表的資料被弄掉了,有些資料表記錄為0,於是想找出此資料庫中到底有哪些資料表的記錄都為0以縮小分析範圍,可使用如下的sql statement create table tmptb tbname sysname,tbrows int,tbreserved varchar 10 t...
怎樣獲取乙個表中所有欄位的資訊
先建立乙個檢視 create view fielddesc asselect o.name as table name,c.name as field name,t.name as type,c.length as length,c.isnullable as isnullable,convert ...