2010-11-01 85 views
12

當我從填充的表格中刪除一列時會發生什麼事情。在all_tab_columns中,其他列的column_id是否被重置?當我刪除一列時Oracle會發生什麼?

+0

這是一個很好的問題,我不知道,但我希望刪除一列是有效的將保持相同的列ID,除非表格在後臺重建。 – 2010-11-01 06:46:58

回答

16

的操作將包括至少以下:

  • 存儲在該列中的數據丟失。
  • 引用該列的視圖無效 - 但(根據Gary - 謝謝!)它們不會丟失;他們保持無效,直到修改爲與修改後的模式一起工作。
  • 引用該列的存儲過程失效 - 同樣需要注意。
  • 以下列的列ID號將被重置。
  • 授予該列的權限將被刪除。
  • 引用該列的索引將被刪除。
+0

謝謝,很有幫助! – trinity 2010-11-01 06:56:42

+1

視圖/程序不會被刪除,但會失效並且會(大部分)保持無效。 – 2010-11-01 22:25:55

3

的alter table drop列

將實際訪問每個塊,並刪除列數據 - 這是一個昂貴的東西對大表做。

您可能會發現更謹慎的問題:

ALTER TABLE未使用的

剛剛標誌列在詞典中「水漲船高」。如果你仍然需要回收這個空間,你可以在安靜的時間安​​排一個「alter table drop unused」

相關問題