2010-09-01 40 views
9

Tôi có một bảng có hàng triệu hàng và tôi muốn xóa tất cả các hàng.Làm thế nào để loại bỏ hiệu quả tất cả các hàng từ một bảng trong DB2

Nếu tôi làm đơn giản delete from tbl, nhật ký giao dịch sẽ đầy. Tôi không quan tâm đến các giao dịch trong trường hợp này, tôi không muốn khôi phục trong mọi trường hợp. Tôi có thể xóa các hàng trong nhiều giao dịch, nhưng có cách nào tốt hơn cho việc này không?

Làm thế nào để loại bỏ hiệu quả tất cả các hàng từ một bảng trong DB2? Tôi có thể vô hiệu hóa các giao dịch cho lệnh này bằng cách nào đó hoặc là có các lệnh đặc biệt để thực hiện điều này (như truncate trong MySQL)?

Sau khi tôi đã xóa các hàng, tôi sẽ repopulate cơ sở dữ liệu với số lượng dữ liệu mới tương tự.

Trả lời

14

Dường như lệnh sau works trong các phiên bản mới hơn của DB2.

TRUNCATE TABLE someschema.sometable IMMEDIATE 
7

Để cắt một bảng trong DB2, bạn chỉ cần viết:

alter table schema.table_name activate not logged initially with empty table 

Từ những gì tôi đã có thể đọc, điều này sẽ xóa các nội dung bảng mà không làm bất kỳ loại khai thác gỗ mà sẽ đi dễ dàng hơn nhiều về tôi của máy chủ của bạn/O.

+1

Điều này có thể không hoạt động trong môi trường nhân bản/hadr do thiếu đăng nhập. –

+1

Đây là một câu trả lời rất hữu ích cho những ai cần xóa bảng trên các phiên bản DB2 không có câu lệnh TRUNCATE TABLE. –

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