SQL查询如何删除表2中处于非活动状态的表



SQL查询如何删除表2中未激活的表

表2包括列server_nameactive

如果active=0,我想运行query,然后获取server_name并删除所有表。

server_name是在表2之外放置表的yahoo。

表1示例(用于跌落(:

tablename
google
yahoo

表2示例:

server_name,active
google 1
yahoo 0

我一般想运行查询来删除yahoo表,因为yahoo在表2中不活跃。

所以我需要删除table_name:yahoo

我有1000张表,我想从表2放到外面。

我需要为此运行哪个查询?

您需要创建一个存储过程,该过程具有一个可以循环遍历表中所有记录的游标。

CREATE PROCEDURE demo()
BEGIN
DECLARE tablename varchar(100);
DECLARE activeflag tinyint;
DECLARE stm varchar(1000);
DECLARE cur CURSOR FOR SELECT server_name, active FROM table2
OPEN cur;
read_loop: LOOP
FETCH cur1 INTO tablename, activeflag
IF (activeflag < 1)
SET stm = CONCAT('DROP TABLE ', tablename);
PREPARE stmt FROM stm;
EXECUTE stmt;
END IF;
END LOOP;
CLOSE cur;
END

从本质上讲,存储过程将遍历表,检查该记录是否处于活动状态,然后准备一条语句来运行DROP table命令。

相关内容

最新更新