mysql删除所有指定表前缀的表

mysql删除所有指定表前缀的表,第1张

DELIMITER //

CREATE PROCEDURE drop_table( DB_NAME varchar(50), prefix varchar(16))

BEGIN

DECLARE done INT DEFAULT 0 #游标的标志位

DECLARE a varchar(20)

DECLARE b varchar(40)

DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME and table_name like concat(prefix, '%')

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1

OPEN cur1

REPEAT

FETCH cur1 INTO a

IF NOT done THEN

set b=concat('drop table ',DB_NAME,'.',a) # 拼删除命令

# set b=concat('TRUNCATE from ',DB_NAME,'.',a) # 拼删除命令

SET @E=b

PREPARE stmt1 FROM @E

EXECUTE stmt1 # 执行命令

DEALLOCATE PREPARE stmt1 #释放对象

END IF

UNTIL done END REPEAT

CLOSE cur1

END

//

DELIMITER

call drop_table('test', 'pre_')

在phpmyadmin中先运行(假设前缀是"abc"):

select concat('drop table ', table_name, '')

from information_schema.tables

where table_name like 'abc_%'

然后把执行的结果从网页中复制出来,粘贴到记事本中,把记事本中的文件另存为:droptable.sql 。(文件类型中选“所有文件”)

在phpmyadmin中,顶部的菜单中,有“import”,点击后,你把新建的文件上传上去,然后点击右下方的“执行”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7398563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存