對於使用 DB2 資料庫的使用者,有時有需要將表中資料清空的需求,這裡提供了四種資料刪除的方法,以供使用者根據自己的需求進行選擇:
1. 使用 DELETE 語句,即:
DELETE FROM <表名>
該語句將清除表中所有資料,但由於這一操作會記日誌,因此執行速度會相對慢一些,另外要注意的是,如果表較大,為保證刪除操作的成功,應考慮是否留有足夠大的日誌空間。
2. 使用 NOT LOGGED INITIALLY 選項,即:
ALTER TABLE <表名> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
這一方法僅在所操作的表在建立時選擇了 NOT LOGGED INITIALLY 選項進行定義後才可使用。整個刪除操作將不會記日誌,因此執行速度是幾種方法中最快的一種,但刪除的資料是不可恢複的。
3. 使用 IMPORT 或 LOAD 命令,即:
IMPORT FROM /dev/null OF DEL REPLACE INTO <表名> --(Unix 系統)
或 IMPORT FROM <空檔案> OF DEL REPLACE INTO <表名>
LOAD FROM /dev/null OF DEL REPLACE INTO <表名> NONRECOVERABLE --(Unix 系統)
或 LOAD FROM <空檔案> OF DEL REPLACE INTO <表名> NONRECOVERABLE
在這一方法中,REPLACE 匯入方式首先會將表中所有資料清空,然後 IMPORT/LOAD 又向表中匯入了空資料,從而實現了資料的清除操作。
4. 使用 DROP/CREATE TABLE 語句,即:
DROP TABLE <表名>
CREATE TABLE <表名> <欄位的定義>
如果儲存有表的定義語句,或已利用 DB2LOOK 命令獲得了表定義的指令碼,也可先刪除整個表,再重新建立表。如果表較大,用這種方法實現資料清空的速度會快於方法一。
如果要實現truncate table的效果,就用IMPORT FROM 空檔案的方法,用其它方法都不好。
對於使用 DB2 資料庫的使用者,有時有需要將表中資料清空的需求,這裡提供了四種資料刪除的方法,以供使用者根據自己的需求進行選擇:
1. 使用 DELETE 語句,即:
DELETE FROM <表名>
該語句將清除表中所有資料,但由於這一操作會記日誌,因此執行速度會相對慢一些,另外要注意的是,如果表較大,為保證刪除操作的成功,應考慮是否留有足夠大的日誌空間。
2. 使用 NOT LOGGED INITIALLY 選項,即:
ALTER TABLE <表名> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
這一方法僅在所操作的表在建立時選擇了 NOT LOGGED INITIALLY 選項進行定義後才可使用。整個刪除操作將不會記日誌,因此執行速度是幾種方法中最快的一種,但刪除的資料是不可恢複的。
3. 使用 IMPORT 或 LOAD 命令,即:
IMPORT FROM /dev/null OF DEL REPLACE INTO <表名> --(Unix 系統)
或 IMPORT FROM <空檔案> OF DEL REPLACE INTO <表名>
LOAD FROM /dev/null OF DEL REPLACE INTO <表名> NONRECOVERABLE --(Unix 系統)
或 LOAD FROM <空檔案> OF DEL REPLACE INTO <表名> NONRECOVERABLE
在這一方法中,REPLACE 匯入方式首先會將表中所有資料清空,然後 IMPORT/LOAD 又向表中匯入了空資料,從而實現了資料的清除操作。
4. 使用 DROP/CREATE TABLE 語句,即:
DROP TABLE <表名>
CREATE TABLE <表名> <欄位的定義>
如果儲存有表的定義語句,或已利用 DB2LOOK 命令獲得了表定義的指令碼,也可先刪除整個表,再重新建立表。如果表較大,用這種方法實現資料清空的速度會快於方法一。
如果要實現truncate table的效果,就用IMPORT FROM 空檔案的方法,用其它方法都不好。