1、首先介紹一下TRUNCATE關(guān)鍵字的意義
TRUNCATE TABLE TableName是一種快速的,無(wú)日志記錄的,刪除表中所有記錄的方法。
2、TRUNCATE和DELETE的區(qū)別
TRUNCATE TABLE在功能上與不帶WHERE子句的DELETE語(yǔ)句相同:二者均刪除表中的全部行。但TRUNCATE TABLE比DELETE速度快,且使用的系統(tǒng)和事務(wù)日志資源少。
DELETE語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE通過(guò)釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁(yè)的釋放。
TRUNCATE TABLE刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用DROP TABLE語(yǔ)句。
對(duì)于由FOREIGN KEY約束引用的表,不能使用TRUNCATE TABLE,而應(yīng)使用不帶WHERE子句的DELETE語(yǔ)句。由于TRUNCATE TABLE不記錄在日志中,所以它不能激活觸發(fā)器。
TRUNCATE TABLE不能用于參與了索引視圖的表。
3、修改id字段的增長(zhǎng)初始值
ALTER TBALE TableName AUTO_INCREMENT=1
4、使用CRecordset時(shí)使用SetFieldNull將自增的變量賦值為NULL(having no value);
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。