【发布时间】:2011-12-02 15:43:44
【问题描述】:
我有一个带有 归档 存储引擎的表,我想清除它。由于引擎定义,delete 和 truncate 都不起作用。但是除了删除整个表并重新创建它之外,还有其他方法吗?
【问题讨论】:
-
我想你可以这样做,删除表并重新创建它,但为什么
DELETE FROM table不起作用?你用的是什么引擎?
我有一个带有 归档 存储引擎的表,我想清除它。由于引擎定义,delete 和 truncate 都不起作用。但是除了删除整个表并重新创建它之外,还有其他方法吗?
【问题讨论】:
DELETE FROM table 不起作用?你用的是什么引擎?
另一种解决方法是将其更改为 BLACKHOLE 表,然后将其更改回来。
【讨论】:
ALTER TABLE the_table ENGINE=BLACKHOLE; ALTER TABLE the_table ENGINE=ARCHIVE
见Bug #15558 truncate doesn't clear table on archive storage engine tables
基本上,设计师希望它以这种方式工作。该错误的修复是当您尝试对使用 ARCHIVE 存储引擎存储的表使用 truncate 时,使其返回错误。
唯一的解决方法是删除并重新创建表。
【讨论】: