一 令人窒息的CONCAT(str1,str2,…)
我只蹭蹭不进去
更新
SELECT CONCAT(‘update ‘,table_name,’ set 字段名= 值; ‘) FROM information_schema.tables WHERE table_schema=‘数据库名称’;
删除
SELECT CONCAT(‘delete table ‘,table_name,’ ; ‘) FROM information_schema.tables WHERE table_schema=‘数据库名称’;
copy 一下查询结果,直接复制回去
二 在 【一】 的基础上执行循环
DROP PROCEDURE IF EXISTS procedure_drop_table;
CREATE PROCEDURE procedure_drop_table()
BEGIN
DECLARE DB_NAME varchar(50) DEFAULT "testcase"; -- 测试数据库的名称
DECLARE done INT DEFAULT 0;
DECLARE tableName varchar(50); -- 测试库表明
DECLARE cmd varchar(50); -- 执行命令
DECLARE sur CURSOR -- 游标
FOR
SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN sur;
REPEAT
FETCH sur INTO tableName;
IF NOT done THEN
set cmd=concat('DROP TABLE ',DB_NAME,'.',tableName); -- 拼接删除命令
SET @E=cmd;
PREPARE stmt FROM @E;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
UNTIL done END REPEAT;
CLOSE sur;
END
call procedure_drop_table();
三 我还没找到第三种方法
版权声明:本文为seven_north原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。