mysql 删除表中所有数据,但不删除表结构
准备一个存储过程,我要删除的数据库是icinga,要删除别的可以替换,等会使用CREATE PROCEDURE clear()
BEGIN
DECLARE done INT DEFAULT 0;#游标的标志位
DECLARE name varchar(50);
DECLARE cmd varchar(150);
DECLARE tb_name CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema='icinga';
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN tb_name;
REPEAT
FETCH tb_name INTO name;
IF NOT done THEN
#set cmd=concat('Delete from ',DB_NAME,'.','`',`name`,'`');
set cmd=concat('TRUNCATE table ','icinga','.','`',`name`,'`');# 拼删除命令
SET @E=cmd;
PREPARE stmt FROM @E;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
UNTIL done END REPEAT;
CLOSE tb_name;
END;
然后登录mysql
mysql -h 10.1.70.41 -uroot -p
mysql>delimiter // #以//作为分割,默认的是;
mysql>复制上面的procedure过来
mysql>//
然后创建成功。
mysql>use icinga
mysql>call clear
就调用了。最后调整回来间隔;
mysql>delimiter ;
页:
[1]