資料庫中truncate與delete的區別

2021-07-16 06:13:37 字數 579 閱讀 7189

而delete和truncate table都是刪除表中的資料的語句,它們的不同之處在於:

1、truncate table比delete的速度快;

2、truncate table 是刪除表的所有行,而delete是刪除表的一行或者多行(除非delete不帶where語句);

3、在刪除時如果遇到任何一行違反約束(主要是外來鍵約束),truncate table仍然刪除,只是表的結構及其列、約束、索引等保持不變,但delete是直接返回錯誤;

4、對於被外來鍵約束的表,不能使用truncate table,而應該使用不帶where語句的delete語句。5、如果想保留標識計數值,要用delete,因為truncate table會對新行標誌符列蒐用的計數值重置為該列的種子。

要刪除表a中資料,使用truncate table a。執行結果是?

表a中的約束依然存在

表a被刪除了

表a中的資料被刪除了一半,再次執行時,將刪除剩下的一半資料行

表a中不符合檢查約束要求的資料被刪除,而符合檢查約束要求的資料依然保留

資料庫中truncate與delete的區別與聯絡

truncate table命令將快速刪除資料表中的所有記錄 保留資料表結構 這種快速刪除與delete from 資料表的刪除全部資料表記錄不一樣,delete命令刪除的資料將儲存在系統回滾段中,需要的時候,資料可以回滾恢復,而truncate命令刪除的資料是不可以恢復的。咱們做乙個測試 1 建乙...

資料庫中 與 區別

mybatis 4 原sql語句 sql view plain copy deletefromups role permission dataparams whererole id 在這裡用到了 使用 時 1 用來傳入引數,sql在解析的時候會加上 當成字串來解析 如這裡 role id rolei...

用命令建立MySQL資料庫 de1

一 連線mysql 格式 mysql h主機位址 u使用者名稱 p使用者密碼 1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者 名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸...