2011-10-06 37 views
5

Tôi có một bảng với kho lưu trữ lưu trữ và tôi muốn xóa nó. Không phải delete, cũng không phải truncate sẽ hoạt động vì định nghĩa của động cơ. Nhưng có cách nào khác hơn là làm rơi cả bàn để tái tạo nó không?bảng lưu trữ mysql truncate

+0

Tôi đoán bạn chỉ có thể làm điều đó, thả bảng và tạo lại bảng, nhưng tại sao công việc 'DELETE FROM table' không hoạt động? Bạn đang sử dụng động cơ nào? – Ben

Trả lời

9

Xem Bug #15558 truncate doesn't clear table on archive storage engine tables

Về cơ bản, nhà thiết kế muốn nó hoạt động theo cách đó. Việc sửa lỗi đó là làm cho nó trả về lỗi khi bạn cố gắng sử dụng cắt ngắn trên một bảng được lưu trữ bằng công cụ lưu trữ ARCHIVE.

Cách giải quyết duy nhất là DROP và tái tạo bảng.

+0

Tôi hy vọng rằng có một số cách giải quyết cho vấn đề này ... Cảm ơn bạn. – Vilius

17

Cách giải quyết khác là thay đổi thành bảng BLACKHOLE, sau đó thay đổi lại.

+1

Nếu đó không phải là cách hài hước nhất để cắt ngắn một bảng ... –

+1

Sau khi thử nghiệm, tôi thấy rằng nó có hiệu quả. Tệp .ARZ được đặt lại mà không cần phải tạo lại định nghĩa bảng. – nullability

+0

Đây là câu trả lời hay hơn. – ilikesleeping

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