0
我想看到像下面的「外鍵約束截斷表」的規範。有誰知道它在哪裏定義?Oracle的規範或SQL的? :用外鍵約束截斷表
從反面來說,如果你有一個外鍵約束參照 你試圖截斷表,這是不行的 - 即使 參照表中沒有任何數據!這是因爲外鍵 檢查是使用DDL而不是DML完成的。這可以通過 臨時禁用對錶的外鍵約束來解決。 http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands
這就是它!但它沒有明確提及「無數據」條件。如果你知道,請教我。 – zono 2012-03-01 23:17:46
@yusaku - 它*不*表示'除非子表不包含任何數據',這是一個全面的聲明,你永遠無法做到這一點。它(強烈地,IMO)暗示它*確實意味着'即使沒有數據'。正如orafaq鏈接所說,那是因爲它是一個DDL語句。讓它看看你正在截斷的表中的數據,不用介意任何引用它的表,它將意味着它必須做DML,改變它的本質,並且它會失去一些效率優勢 - 就像它純粹的DDL一樣根本不需要檢索任何數據(數據字典本身之外)。 – 2012-03-02 09:04:29