truncate與delete的區(qū)別
刪 除 數(shù) 據(jù)
刪除表中數(shù)據(jù)的方法有兩種,在指定的表或視圖中刪除滿足給定條件的數(shù)據(jù)可以使用DELETE語句;如果要清除表中全部數(shù)據(jù),則還可以使用TRUNCATE TABLE語句.DELETE語句的語法如下.
命令格式:
DELETE[ FROM ] { table_name | view_name }
[ FROM { }]
[ WHERE ]
命令說明:
(1)DELETE語句中的語法項目含義與UPDATE語句相同.
(2)WHERE子句給出刪除數(shù)據(jù)所必須滿足的條件,省略WHERE子句時將刪除所有數(shù)據(jù).
TRUNCATE TABLE語句用于清空表中所有數(shù)據(jù),語法如下.
命令格式:
TRUNCATE TABLE table_name
TRUNCATE TABLE table_name與DELETE table_name都可以刪除表中全部記錄.
二者的相同點是都不刪除表的結(jié)構(gòu),索引,約束,規(guī)則和默認(rèn),如果希望刪除表的定義,必須使用DROP TABLE語句.TRUNCATE TABLE語句與DELETE語句的區(qū)別是,如果表中含有自動編號列,則使用TRUNCATE TABLE語句后,該列將復(fù)位為其初始seed值(經(jīng)本人驗證通過SEQUENCE和TRIGGER實現(xiàn)的自動增加列是無法回復(fù)到SEQUENCE的初始值的,給大家?guī)淼恼`解,深表歉意),而使用DELETE語句將不會復(fù)位.另外,使用TRUNCATE TABLE語句不記錄日志,而DELETE語句每刪除一條記錄,都要記入日志,因此TRUNCATE TABLE語句的操作速度要快于DELETE語句.
----------------------------------------------------------------------------------------------------------------------------------
普通方法:delete from tablename where...
快速刪除表中所有記錄 truncate table tablename
但后者不觸發(fā)表delete觸發(fā)器,所在的刪除動作不能事務(wù)回滾
經(jīng)本人驗證通過SEQUENCE和TRIGGER實現(xiàn)的自動增加列是無法回復(fù)到SEQUENCE的初始值的,給大家?guī)淼恼`解,深表歉意
刪 除 數(shù) 據(jù)
刪除表中數(shù)據(jù)的方法有兩種,在指定的表或視圖中刪除滿足給定條件的數(shù)據(jù)可以使用DELETE語句;如果要清除表中全部數(shù)據(jù),則還可以使用TRUNCATE TABLE語句.DELETE語句的語法如下.
命令格式:
DELETE[ FROM ] { table_name | view_name }
[ FROM { }]
[ WHERE ]
命令說明:
(1)DELETE語句中的語法項目含義與UPDATE語句相同.
(2)WHERE子句給出刪除數(shù)據(jù)所必須滿足的條件,省略WHERE子句時將刪除所有數(shù)據(jù).
TRUNCATE TABLE語句用于清空表中所有數(shù)據(jù),語法如下.
命令格式:
TRUNCATE TABLE table_name
TRUNCATE TABLE table_name與DELETE table_name都可以刪除表中全部記錄.
二者的相同點是都不刪除表的結(jié)構(gòu),索引,約束,規(guī)則和默認(rèn),如果希望刪除表的定義,必須使用DROP TABLE語句.TRUNCATE TABLE語句與DELETE語句的區(qū)別是,如果表中含有自動編號列,則使用TRUNCATE TABLE語句后,該列將復(fù)位為其初始seed值(經(jīng)本人驗證通過SEQUENCE和TRIGGER實現(xiàn)的自動增加列是無法回復(fù)到SEQUENCE的初始值的,給大家?guī)淼恼`解,深表歉意),而使用DELETE語句將不會復(fù)位.另外,使用TRUNCATE TABLE語句不記錄日志,而DELETE語句每刪除一條記錄,都要記入日志,因此TRUNCATE TABLE語句的操作速度要快于DELETE語句.
----------------------------------------------------------------------------------------------------------------------------------
普通方法:delete from tablename where...
快速刪除表中所有記錄 truncate table tablename
但后者不觸發(fā)表delete觸發(fā)器,所在的刪除動作不能事務(wù)回滾
經(jīng)本人驗證通過SEQUENCE和TRIGGER實現(xiàn)的自動增加列是無法回復(fù)到SEQUENCE的初始值的,給大家?guī)淼恼`解,深表歉意
開心過好每一天。。。。。
就是這句話能不能用例子說明一下。
@隔葉黃鶯
經(jīng)本人驗證通過SEQUENCE和TRIGGER實現(xiàn)的自動增加列是無法回復(fù)到SEQUENCE的初始值的,給大家?guī)淼恼`解,深表歉意
你對于這個問題有什么高見,本人愿意傾聽