日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TRUNCATE vs DELETE命令

發布時間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TRUNCATE vs DELETE命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TRUNCATE vs DELETE命令

作用:用于完全清空表數據 , 但表結構 , 索引 , 約束等不變 ;

語法:

TRUNCATE [TABLE] table_name;-- 清空年級表 TRUNCATE grade

注意:區別于DELETE命令

  • 相同 : 都能刪除數據 , 不刪除表結構 , 但TRUNCATE速度更快

  • 不同 :

    • 使用TRUNCATE TABLE 重新設置AUTO_INCREMENT計數器
    • 使用TRUNCATE TABLE不會對事務有影響 (事務后面會說)

測試:

-- 創建一個測試表 CREATE TABLE `test` ( `id` INT(4) NOT NULL AUTO_INCREMENT, `coll` VARCHAR(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8-- 插入幾個測試數據 INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');-- 刪除表數據(不帶where條件的delete) DELETE FROM test; -- 結論:如不指定Where則刪除該表的所有列數據,自增當前值依然從原來基礎上進行,會記錄日志.-- 刪除表數據(truncate) TRUNCATE TABLE test; -- 結論:truncate刪除數據,自增當前值會恢復到初始值重新開始;不會記錄日志.-- 同樣使用DELETE清空不同引擎的數據庫表數據.重啟數據庫服務后 -- InnoDB : 自增列從初始值重新開始 (因為是存儲在內存中,斷電即失) -- MyISAM : 自增列依然從上一個自增數據基礎上開始 (存在文件中,不會丟失)

truncate 影響自增

delete 不影響自增

總結

以上是生活随笔為你收集整理的TRUNCATE vs DELETE命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。