用delete和trancate刪除表記錄的區別
首先說相同點,就是他們都能刪除表中的數據,
區別有兩點,
第一點:delete語句在刪除記錄的時候可以有選擇的刪除某些數據(使用where子句),當然,如果不添加where子句,就是刪除所有記錄
而trancete語句則是清空表中所有數據,沒有其他選擇說某些東西不刪,某些東西刪了。
第二點:當表中的主鍵是自動增長(auto_increment)時,用delete刪除完數據之後,再往表中插入數據,當數據的主鍵為空,其自動增長時,並不是從1開始,也就是說,delete雖然刪除了數據,但是,他並沒有將主鍵自增的那一塊重新設為1。
而truncate則做了這件事,它不僅將數據全部清空,還將主鍵自增的值初始為1。
總的來說可以用一句話區分:
delete只刪數據,不清痕跡;trancate既刪數據,又清痕跡。
以下實驗,一看就明白:
第一次測試用delete刪除所有數據,然後在主鍵為空插入數據
然後用truncate刪除數據,在進行主鍵為空插入
用delete和trancate刪除表記錄的區別
相關推薦
用delete和trancate刪除表記錄的區別
區分 auto 區別 但是 重新 src 測試 delet 試用 首先說相同點,就是他們都能刪除表中的數據, 區別有兩點, 第一點:delete語句在刪除記錄的時候可以有選擇的刪除某些數據(使用where子句),當然,如果不添加where子句,就是刪除所有記錄 而
SqlServer--delete、truncate 、Drop刪除表的區別
--delete from 表名 --1>只是刪除表中某些資料,表結構還在.。 --2>Delete 可以帶where子句來刪除一部分資料,例如 DELETE FROM Student WHERE sAge > 20 --3>自動編號不恢復到初始值。 --truncate tabl
刪除表記錄(delete from ....where)
delete from [dbo].[userinfo] where ID=2; delete from [dbo].[userinfo] where ID=3 or ID=4;--刪除多行 滿足條
inux系統用戶名和全名有什麽區別
說明 創建用戶 請問 b- == linux系統安裝 linux系統 ext pan 問:linux系統安裝完畢,進入系統,創建用戶的時候,要填入用戶名和全名,請問用戶名和全名有什麽區別,登錄的時候,是用戶名還是全名? ===========================
linux下用shell腳本刪除mysql記錄ssc源碼搭建
sed caused mit mysq 腳本 don bash jdb use mysql下刪除記錄較多的ssc源碼搭建會出現如下錯誤:企 娥:217 1793 408 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonT
MySQL刪除表記錄的兩種方式
MySQL刪除表記錄有兩種方式 delete from 表名; truncate table 表名; 不帶where引數的delete語句可以刪除mysql表中所有內容,使用truncate table也可以清空mysql表中所有內容。 效率上truncate比del
Hive面試題:Hive分割槽表和分桶表的區別
分割槽在HDFS上的表現形式是一個目錄, 分桶是一個單獨的檔案 分割槽: 細化資料管理,直接讀對應目錄,縮小mapreduce程式要掃描的資料量 分桶: 1、提高join查詢的效率(用分桶欄位做連線欄位)
用JMeter和badboy錄製指令碼的區別
如果要衡量一個頁面(頁面渲染完成)的效能時,我們就需要考慮完成頁面渲染所需要的圖片、css和js等資原始檔,因此用Jmeter錄製指令碼。 如果僅測試某操作的響應時間,比如:登入,則就用badboy錄製指令碼。因為badboy不會錄製圖片、css和js等資原始檔 &nb
用slot和component實現表單共用
業務需求 在oa開發中,有許多流程,每個流程裡都會有很多欄位,比如流程標題、拉下選擇,附件等等,有些是每個流程都會有的,有些是特有的,按常規的方法開發,就為為一個流程寫一個表單,校驗,提交。如果新來流程,就複製一個表達,修改需要變更的地方。這樣開發會導致很多重複的程式碼,而且比較凌亂 簡化實現 將每
new/delete和malloc/free用法與區別
1 new / delete 1.1 new/delete表示式(操作符) 表示式的使用如下: string *sp=new string("aaaa"); string *arr=new string[10]; delete sp; delete [] arr; 以
Linux中hive無法使用Delete和Backspace刪除鍵
今天接到個小任務,需要使用Linux系統下的hive,鹽後遇到個小問題,在Linux的terminal下輸入hive,進入到hive的環境下,輸入程式碼後發現輸入有錯誤時,想用Backspace刪除錯誤命令時,鍵盤無反應,現在找到癥結了,很簡單: 問題:如
redis的萬用字元和批量刪除Key
1. DEL 直接加鍵名稱 DEL key1 key2 key3 127.0.0.1:6379> DEL site_msg_99973 false site_msg_99974 false site_msg_99979false 2. 批量刪除key
Mysql刪除表的區別
--delete from 表名--1>只是刪除表中某些資料,表結構還在.。--2>Delete 可以帶where子句來刪除一部分資料.資料可根據日誌恢復--3>自增長不恢復到初始值。--truncate table 表名--1>truncate語句不
Linux中萬用字元和正則表示式的區別
在看鳥哥的Linux私房菜的時候看到十二章一直強調萬用字元和正則表示式的區別,在我的理解中,兩者貌似是一樣的都是用來匹配的。Google之網上給出的答案是: 在文字過濾工具裡,都是用正則表示式,比如像awk,sed,等,是針對檔案的內容的 而萬用字元多用在檔名上,比如查詢
Class.forName的作用及用newInstance()和new建立物件的區別
Class.forName(xxx.xx.xx) 返回的是一個類 首先你要明白在java裡面任何class都要裝載在虛擬機器上才能執行。這句話就是裝載類用的(和new 不一樣,要分清楚)。 至於什麼時候用,你可以考慮一下這個問題,給你一個字串變數,它代表一個類的包名和
SQL用and和or多表查詢笛卡爾積
原因:and或or都要有過濾條件才行,比如 SELECT T1.* from T_DC_ORDER_CENTER_DETAIL T1, TD_S_COMMPARA T2 WHERE T1.CH
單項鏈表和雙向鏈表的區別
water 分享 tex width csdn 區別 需要 text 單向 單鏈表(單向鏈表):由兩部分組成 數據域(Data)和結點域(Node),單鏈表就像是一條打了很多結的繩子,每一個繩結相當於一個結點,每個節結點間都有繩子連接,這樣原理的實現是通過Node結點區的頭
delete刪除表和truncate有什麼區別
delete刪除表中的資料時沒有加where 條件,會刪除表中的所有資料,它與truncate 有什麼區別? 刪除過程不同 truncate 刪除資料,過程先將整個表刪除,再重新建立 delete 刪除資料,逐行刪除記錄 truncate 效率要好於 delete 語言定義不同
刪除表資料drop、truncate和delete的用法與區別
說到刪除表資料的關鍵字,大家記得最多的可能就是delete了 然而我們做資料庫開發,讀取資料庫資料.對另外的兩兄弟用得就比較少了 現在來介紹另外兩個兄弟,都是刪除表資料的,其實也是很容易理解的 老大------drop 出沒場合:drop table tb --tb表示資料表的名字,下同 絕招:刪除內容和
Sql語句——刪除表數據drop、truncate和delete的用法
行數據 const 數值 rain dml ble 可能 如果 sql語句 一、SQL中的語法 1、drop table 表名稱 eg: drop table dbo.Sys_Test 2、truncate tab