2011-10-06 4 views
5

アーカイブストレージエンジンのテーブルがあり、それをクリアしたいと思います。 deletetruncateもエンジン定義のため動作しません。しかし、テーブル全体を落として再作成する以外の方法はありますか?mysql truncate archive table

+0

私はあなたがそれを行うことができ、テーブルを落としてそれを作り直すことができると思いますが、なぜ 'DELETE FROM table'の仕事はできないのでしょうか?どのエンジンを使用していますか? – Ben

答えて

9

は基本的には、設計者は、それがそのように動作したかったBug #15558 truncate doesn't clear table on archive storage engine tables

を参照してください。このバグの修正は、ARCHIVEストレージエンジンに格納されたテーブルでtruncateを使用しようとするとエラーを返すことでした。

唯一の回避策は、DROPを実行してテーブルを再作成することです。

+0

この問題の回避策がいくつかあると思っています...ありがとうございます。 – Vilius

17

もう1つの回避策は、BLACKHOLEテーブルに変更して元に戻すことです。

+1

それは、テーブルを切り捨てる面白い方法ではない場合は... –

+1

これをテストした後、私はそれが有効であることがわかりました。 .ARZファイルは、テーブル定義を再作成せずにリセットされます。 – nullability

+0

これは良い答えです。 – ilikesleeping

関連する問題