Truncate table có lấy lại được dữ liệu không?

Truncate table có lấy lại được dữ liệu không?

Trả lời:

Không,

Lệnh TRUNCATE TABLE trong Oracle Database được sử dụng để xóa tất cả các hàng trong một bảng một cách nhanh chóng, mà không ghi lại các giao dịch riêng lẻ cho từng hàng. Dưới đây là một số điểm quan trọng về lệnh TRUNCATE TABLE:

Đặc điểm của TRUNCATE TABLE

  1. Nhanh chóng: TRUNCATE TABLE thường nhanh hơn lệnh DELETE FROM table_name vì nó không ghi lại các giao dịch cho từng hàng.
  2. Không thể khôi phục bằng UNDO: Khác với lệnh DELETE, lệnh TRUNCATE TABLE không tạo ra các bản ghi UNDO cho từng hàng, do đó bạn không thể khôi phục dữ liệu đã bị xóa bằng cách sử dụng các lệnh UNDO thông thường.
  3. Tái tạo lại không gian: TRUNCATE TABLE giải phóng không gian bảng sử dụng, trả lại không gian này cho tablespace chứa bảng, ngoại trừ không gian đã được phân bổ nhưng không sử dụng.
  4. Tự động Commit: TRUNCATE TABLE thực hiện một lệnh COMMIT tự động trước và sau khi xóa dữ liệu, do đó không thể hoàn tác (rollback) thao tác này.
  5. Không kích hoạt Trigger: Triggers sẽ không được kích hoạt khi sử dụng lệnh TRUNCATE TABLE.

=>> truncate table không lưu log, không tạo ra undo nên không thể thực hiện Flashback được => không có cách nào cả, trừ khi bạn restore từ bản backup trước khi truncate mà thôi.

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA), là người đang tập tành viết lách trên blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. #Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận