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.

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