2011-10-10 22 views
14

Tôi đang sử dụng cơ sở dữ liệu Oracle và tôi hơi bối rối về lệnh thả và thanh trừng. Trong thực tế đối với tôi cả hai đều làm điều tương tự. Loại bỏ bảng với lược đồ từ cơ sở dữ liệu. Sự khác biệt chính giữa hai điều này là gì?Sự khác biệt giữa thả và thả thanh trừng trong Oracle

  1. Bảng thả Tablename;
  2. Bảng thả Tablename Purge;
+5

Đây không phải là câu hỏi 'Đọc hướng dẫn'? Và làm thế nào nó có thể là cả MySQL và Oracle? – MatBailie

+0

@Dems "Đọc hướng dẫn" ... giống như hầu hết các câu hỏi của Oracle trên Stackoverflow, thật đáng buồn. –

Trả lời

30

Thông thường, một bảng được chuyển vào thùng rác (như của Oracle 10g), nếu nó bị bỏ. Tuy nhiên, nếu bộ chỉnh sửa thanh lọc được chỉ định là tốt, bảng không thể khôi phục (hoàn toàn) được loại bỏ khỏi cơ sở dữ liệu.

+2

+1 Tôi sẽ thêm rằng nếu bạn không thêm 'purge', bảng sẽ tiếp tục sử dụng không gian trong thùng rác để nếu bạn đang dọn dẹp thì tốt hơn nên sử dụng nó. – Ben

+1

Id đồng ý với Ben về việc sử dụng không gian, sử dụng thanh trừng, hoặc tôi đã nhìn thấy một bảng cắt ngắn theo sau là một giọt để có hiệu ứng tương tự. – tbone

6

Cơ sở dữ liệu Oracle 10g giới thiệu tính năng mới để giảm bảng. Khi bạn thả bảng, cơ sở dữ liệu không giải phóng không gian ngay lập tức được liên kết với bảng . Thay vào đó, cơ sở dữ liệu đổi tên bảng và đặt nó vào thùng rác, sau đó nó có thể được khôi phục bằng câu lệnh FLASHBACK TABLE nếu bạn thấy rằng bạn đã xóa bảng do nhầm lẫn. Nếu bạn muốn giải phóng không gian ngay lập tức được kết hợp với bảng tại thời điểm bạn phát hành câu lệnh DROP TABLE, sau đó bao gồm mệnh đề PURGE như sau. DROP TABLE nhân viên PURGE; Chỉ định PURGE chỉ khi bạn muốn thả bảng và giải phóng không gian được liên kết với nó trong một bước. Nếu bạn chỉ định PURGE, thì cơ sở dữ liệu không đặt bàn và các đối tượng phụ thuộc vào trong thùng rác. LƯU Ý: Bạn không thể cuộn lại câu lệnh DROP TABLE với mệnh đề PURGE và bạn không thể khôi phục bảng nếu bạn thả nó với mệnh đề PURGE. Tính năng này không có sẵn trong các bản phát hành trước đó.

-1

bảng thả table_name thanh lọc;

Bằng cách sử dụng truy vấn này những gì đã xảy ra: - Thông thường, một bảng được chuyển vào thùng rác (như Oracle 10g), nếu nó bị bỏ. đối tượng chúng ta có thể sử dụng mệnh đề Purge.

0
SQL>drop table table_name; 

lệnh này sẽ xoá bảng tên tên_bảng, nhưng trong nội bộ nó được chuyển đến thùng rác của oracle (mà chỉ là tương tự như xóa bất kỳ tập tin/thư mục sử dụng Xóa chìa khóa trên cửa sổ os).
Lợi ích:
1. Chúng tôi có thể khôi phục bảng đã xóa ở trên nếu cần.
Hạn chế:
1. Vẫn chiếm một số lượng bộ nhớ.

SQL>drop table table_name purge; 

lệnh này sẽ xoá tên_bảng bảng hoàn toàn từ cơ sở dữ liệu (tương tự như xóa bất kỳ tập tin/thư mục sử dụng phím Shift +Xóa phím trên hệ điều hành windows).

Lợi ích và hạn chế sẽ là câu ngược lại ở trên.

0

Câu lệnh dưới đây sẽ thả bảng và đặt nó vào thùng rác.

DROP TABLE emp_new;

Câu lệnh dưới đây sẽ thả bảng và xóa nó ra khỏi thùng rác.

DROP TABLE emp_new PURGE;

+0

Tại sao nó bị bỏ phiếu? Một số bình luận sẽ giúp gì? Với tôi nó có vẻ đúng .. – nanosoft

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