2010-11-01 36 views
12

Điều gì khác nhau xảy ra khi tôi thả một cột từ một bảng đầy. Trong all_tab_columns, cột column_id của các cột khác có được đặt lại không?Điều gì sẽ xảy ra trong Oracle khi tôi thả một cột?

+0

Đây là một câu hỏi hay và tôi không biết, nhưng tôi mong đợi việc bỏ một cột sẽ có hiệu lực sẽ giữ nguyên các ID cột, trừ khi bảng được xây dựng lại trong nền. –

Trả lời

16

Các hành động này sẽ bao gồm ít nhất như sau:

  • Các dữ liệu được lưu trữ trong cột đó sẽ bị mất.
  • Lượt xem tham chiếu cột đó không hợp lệ - nhưng (theo số Gary - cảm ơn!) Chúng không bị giảm; chúng không hợp lệ cho đến khi được sửa đổi để làm việc với lược đồ đã sửa đổi.
  • Các thủ tục được lưu trữ tham chiếu đến cột đó không hợp lệ - cùng một lưu ý.
  • Số ID cột của các cột sau sẽ được đặt lại.
  • Quyền được cấp trên cột sẽ bị xóa.
  • Chỉ mục tham chiếu cột đó sẽ bị xóa.
+0

Cảm ơn, rất hữu ích! – trinity

+1

Lượt xem/thủ tục sẽ không bị xóa, nhưng sẽ bị vô hiệu và sẽ (hầu hết) không hợp lệ. –

3

ALTER TABLE thả cột

thực sự sẽ đến thăm từng khối và loại bỏ các dữ liệu cột - và đó là một điều tốn kém để làm cho một bảng lớn.

Bạn có thể tìm thấy nó thận trọng hơn đối với vấn đề:

thay đổi bảng thiết lập không sử dụng

mà chỉ cờ cột như "biến mất" trong từ điển. Nếu bạn vẫn cần khôi phục không gian đó, bạn có thể lập lịch "thay đổi bảng thả không sử dụng" tại thời điểm yên tĩnh

Các vấn đề liên quan