對於sql清空表有三種清空方式
1.delete------ 是逐行刪除速度極慢,不適合大量資料刪除
2.truncate---- 刪除所有資料,保留表結構,不能撤消還原
3.drop-------- 刪除表,資料和表結構一起刪除,快速
但是在實踐過程中我發現,1,2這兩種方法在處理大量資料的時候都比較慢,往往要等待許久才能清空完成。所以我考慮還有沒有其他的方法達到清空表的作用呢。後來我從匯出表結構中想到了一種方法。
首先對原先表進行刪除,然後再重建,不就可以達到清空的作用麼,例如下:
[sql]
view plain
copy
setforeign_key_checks=0;
-- ----------------------------
-- table structure for medical_list
-- ----------------------------
drop
table
if exists `medical_list`;
create
table
`medical_list` (
`id` bigint
(20)
notnull
, `name
` longtext,
`county_id` bigint
(20)
default
null
, `street_office_id` bigint
(20)
default
null
, `longitude` double
default
null
, `latitude` double
default
null
, `type` char
(255)
default
null
, `parent_id` bigint
(20)
default
null
, `max_popu` int
(11)
default
null
, `popu_list` longtext,
`popu` int
(11)
default
null
, `building_id` bigint
(20)
default
null
, `gridx` int
(10)
default
null
, `gridy` int
(10)
default
null
, `lregionid` int
(10)
default
null
, `regionid_lon` double
default
null
, `regionid_lat` double
default
null
, primary
key(`id`)
) engine=innodb default
charset=utf8;
通過匯出sql檔案-僅結構,就可以得到以上sql語句。然後通過程式執行sql語句!
注:這個方法雖然很快速,但是一雖刪除了資料就不可逆了!
快速清空表資料
15.2.10 快速清空表資料 對於使用db2資料庫的使用者而言,有時候需要將表中資料清空。這裡提供了4種資料刪除的方法,以供使用者根據自己的需求進行選擇 使用delete語句,即 delete from 表名 該語句將清除表中所有資料,但由於這一操作會記日誌,因此執行速度會相對慢一些。另外要注意的...
SQL語句快速新增表的記錄
1 首先這張表名為users,主鍵是userid。建表的語句如下 code create databasespdb create tableusers useridint primary keyidentity 1,1 usernamevarchar 20 passwdvarchar 20 emai...
使用SQL語句清空資料庫所有表的資料
近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 declare trun name varch...