如何使用“TRUNCATE TABLE”MySQL语句?

时间:2012-04-26 作者:goodseller

我试过dbDelta和$wpdb->query,它们都不起作用。有人有什么想法吗?

3 个回复
最合适的回答,由SO网友:menardmam 整理而成

正如今天所尝试的,truncate比DELETE好得多,因为DELETE破坏了站点,而trucate只是清空了表,下面是工作代码:

global $wpdb;

$wpdb->query(\'TRUNCATE TABLE wp_posts\');

SO网友:Aaron Wagner

根据this forum entry, 截断不起作用。我猜,因为这是一个破坏性很强的查询,所以它会被类过滤掉。还有this Trac Post, 如果我读对了,就不允许DDL语句。

SO网友:Zaheer Abbas

我知道上面有类似的答案,但在上面的答案中,如果有人错误地使用了该代码,那么所使用的wp\\u post表将丢失他的所有帖子。

所以共享一个正确的截断方法。

   global $wpdb;
   $table_name = $wpdb->base_prefix.\'name_of_table_without_prefix\';
   $wpdb->query("TRUNCATE TABLE $table_name");

结束

相关推荐

WordPress如何处理MySQL行锁错误?

如果有一个WordPress插件更新自定义表中的行,但该更新遇到行锁定,会发生什么情况?E、 g.两个用户同时启动表1上的更新,一个设置年龄=1,另一个设置年龄=2:是否会有行锁</MySQL会“优雅地”处理这个问题,而这两个更新中的一个会“丢失”吗</Wordpress处理得优雅吗</我需要在插件中处理它吗数据不是很重要,因为我不需要跟踪每一个变化。但我确实需要处理可能出现的任何错误。