【发布时间】:2014-10-13 04:58:42
【问题描述】:
我有一个 .sql 文件,它在导出之前清除 mysql 模式中的缓存数据,因为当我将导出文件导入到不同的服务器时,这些表中的缓存数据是无用的。我在多个站点上使用此脚本,但在某些情况下某些表不存在,因为它们不是必需的。如果只有该表存在,我如何只截断 MySQL 中的表?
TRUNCATE accesslog;
TRUNCATE cache;
TRUNCATE cache_block;
TRUNCATE cache_bootstrap;
TRUNCATE cache_customfilter;
TRUNCATE cache_field;
TRUNCATE cache_filter;
TRUNCATE cache_form;
TRUNCATE cache_image;
TRUNCATE cache_menu;
TRUNCATE cache_metatag;
TRUNCATE cache_page;
TRUNCATE cache_path;
TRUNCATE cache_token;
TRUNCATE cache_update;
TRUNCATE cache_views;
TRUNCATE cache_views_data;
TRUNCATE watchdog;
提前致谢。
【问题讨论】:
-
我猜
IF EXISTS TRUNCATE TABLE table_name -
要么 (1) 忍受错误 (2) 在任何地方创建这些表,即使在这个 .sql 中也可能(如果不存在则创建...) (3) 编写一个小应用程序,在截断之前检查.
-
@Wrikken - 很酷。我以为你很粗鲁。但我现在明白你的意思了。
-
@PreetSangha:嗯,你让我走上了一条道路,为此我感谢你。我已经对您的回答发表了评论,需要进行哪些更改才能使其真正起作用。