2012-03-02 45 views
1

我可以使用delete from table_name它的工作原理。
爲什麼不是truncate即使子表爲空也會限制父表的截斷嗎?

+0

你得到什麼錯誤? – Ollie 2012-03-02 11:08:43

+0

外鍵引用...下半部分的答案... – 2012-03-02 11:21:39

+0

相關問題:http://stackoverflow.com/q/9519432 – 2012-03-02 12:13:46

回答

5

嘗試:

TRUNCATE TABLE <tablename>; 

禁用FK約束之後。

截斷不能回滾,因爲它是DDL rather than DML所以要小心。 它還重置正在截斷的表格的高位標記。

請參閱here以獲取Oracle文檔說明。 和here作比較。

N.B .: 您不能截斷啓用的外鍵約束的父表。在截斷表之前,您必須禁用約束。一個例外是,如果完整性約束是自引用的,則可以截斷表。

Oracle documantation

希望它有幫助...

+0

'TRUNCATE'還重置身份列 – ntziolis 2012-03-02 11:05:49

+0

@ntziolis:Oracle沒有「身份「欄目。 – 2012-03-12 08:54:46

+0

正確,重讀oracle標記 – ntziolis 2012-03-12 09:25:52